2017-06-08 3 views
0

Ich versuche, ein Diagramm mit griechischen Buchstaben in der Legende und fettem Zeichen in der Legende der X-Achse zu machen. Dies funktioniert gut mit ggplot:Wie können griechische Buchstaben und fett gedruckte Zeichen in einer Legende mit plotly eingefügt werden?

library(ggplot2) 
library(plotly) 
## Dataframe 
df <- data.frame(dose=c("D0.5", "D1", "D2"),len=c(4.2, 10, 29.5)) 

## Legend with the greek letter pi 
my.labs <- list(bquote(Pi==.(5))) 

## Plot with ggplot 
p=ggplot(data=df, aes(x=dose, y=len, group=1,colour = paste("Pi = ",5,sep=""))) + 
geom_line()+ 
geom_point()+ 
scale_colour_manual(values=3, labels=my.labs)+ 
theme(legend.title=element_blank(), legend.position = c(.1, .9),axis.title.x = element_text(face="bold", colour="black", size=10)) 

p 

Graph with ggplot

jedoch der griechische Buchstabe und die kühne Legende für die x-Achse verschwinden bei der Verwendung von plotly:

p=plotly_build(p) 
style(p, hoverinfo = "x+y") %>% 
layout(legend = list(x = 0.1, y = 0.9, font=list(size=12))) 

Same graph using plotly

Antwort

0

Sie würden brauchen zwei kleine Änderungen, um ganz nah an Ihre ggplot Grafik heranzukommen.

Stellen Sie den xaxistitle zu fett manuell

layout(legend = list(x = 0.1, 
        y = 0.9, 
        font=list(size=12)), 
     xaxis = list(title = "<b>dose</b>") 
) 

den HTML-Code für pi Verwenden Sie in ggplot (funktioniert mit RStudio in Windows) oder fügen Sie π (funktioniert mit RStudio in Ubuntu).

colour = paste("&pi; = ",5,sep="") 

oder

colour = paste("π = ",5,sep="") 

enter image description here

library(ggplot2) 
library(plotly) 
## Dataframe 
df <- data.frame(dose=c("D0.5", "D1", "D2"),len=c(4.2, 10, 29.5)) 

## Legend with the greek letter pi 
my.labs <- list(bquote(Pi==.(5))) 

## Plot with ggplot 
p=ggplot(data=df, aes(x=dose, y=len, group=1,colour = paste("&pi; = ",5,sep=""))) + 
    geom_line()+ 
    geom_point()+ 
    scale_colour_manual(values=3, labels=my.labs)+ 
    theme(legend.title=element_blank(), legend.position = c(.1, .9),axis.title.x = element_text(face="bold", colour="black", size=10)) 
p 
p=plotly_build(p) 
p <- style(p, hoverinfo = "x+y") %>% 
    layout(legend = list(x = 0.1, 
         y = 0.9, 
         font=list(size=12)), 
     xaxis = list(title = "<b>dose</b>") 
) 

p 
+0

Dank @Maximilian! Leider scheint der HTML-Code für pi bei mir nicht zu funktionieren. Ich bekomme nur eine Legende mit "π = 5". Hättest du irgendwelche Empfehlungen dazu? Danke! Hier ist meine SessionInfo: R Version 3.3.3 (2017-03-06) Plattform: x86_64-Apple-Darwin13.4.0 (64-Bit) läuft unter: OS X Yosemite 10.10.5 – Nicolas

+0

@ Nicolas: Seltsam! Ich habe es gerade mit RStudio in Ubuntu ausprobiert und bin auf dasselbe Problem gestoßen. Ich werde die Frage aktualisieren. –

+0

Ihre alternative Lösung funktioniert auch auf meinem Mac, danke! – Nicolas

Verwandte Themen