Greek characters in the legend ggplot2 (density graph)

I created a density graph in ggplot and tried to use Greek characters in the legend. Here is what I tried:

value1 = 0.8
value2 = 0.8
value3 = 0
greeks <- list(bquote(rho==.(value1)), bquote(rho==.(value2)), bquote(rho==.(value3)))

ggplot(data=df)+
  stat_density(aes(x=R1, colour="rho = -0,6",linetype="rho = -0,6"), 
               adjust=4, lwd=0.5, geom="line", position="identity")+
  stat_density(aes(x=R2, colour="rho = 0,6",linetype="rho = 0,6"), 
               adjust=4, lwd=0.5, geom="line", position="identity")+
  stat_density(aes(x=R3, colour="rho = 0", linetype="rho = 0"), 
               adjust=4, lwd=0.5, geom="line", position="identity")+
  xlim(-1, 1)+
  xlab("Renditen")+
  ylab("Dichte")+
  ggtitle("Renditeverteilung im Heston-Modell")+
  theme(plot.title=element_text(face="bold", size=16, vjust=2, family="Times New Roman"),  
        axis.title.x=element_text(vjust=-1, size=14, family="Times New Roman"),
        axis.title.y=element_text(vjust=-0.25, size=14, family="Times New Roman"), 
        legend.text=element_text(size=14, family="Times New Roman"), legend.title=element_blank(),
        legend.margin=unit(1, "cm"),
        legend.key.height=unit(1, "line"), 
        legend.key.size=unit(0.4, "cm"), 
        legend.key=element_rect(fill=NA), 
        legend.background=element_blank(),
        plot.margin=unit(c(1,1,1,1), "cm"))+
  scale_colour_manual(values=c("rho = -0,6"="red", "rho = 0,6"="blue", 
                               "rho = 0"="black"), labels=greeks)+
  scale_linetype_manual(values=c("rho = -0,6"=1, "rho = 0,6"=1, 
                                 "rho = 0"=3))

! ( http://i.imgur.com/LOWfs63.jpg )

How can I get a legend to show Greek symbols, colors and line types in one legend?

thanks in advance!

Edit: this is a data frame

> head(df)
          R1          R2            R3
1 0.22338963  0.15997630  0.2014689661
2 0.04803470 -0.12353615 -0.0802556036
3 0.15555398  0.19013430  0.1984939928
4 0.07646570 -0.05518703 -0.0004357738
5 0.03526795 -0.05357581 -0.0103695887
6 0.14946339  0.06930905  0.1079376659

My answer:

value1 = "0,6"
value2 = "0"
value3 = "-0,6"
greeks <- list(bquote(rho==.(value1)), bquote(rho==.(value2)), bquote(rho==.(value3)))


ggplot(data=df)+
  stat_density(aes(x=R1, colour="rho = -0,6"), 
               adjust=4, lwd=0.5, geom="line", position="identity")+
  stat_density(aes(x=R2, colour="rho = 0,6"), 
               adjust=4, lwd=0.5, geom="line", position="identity")+
  stat_density(aes(x=R3, colour="rho = 0"), 
               adjust=4, lwd=0.5, linetype=2, geom="line", position="identity")+
  xlim(-1, 1)+
  xlab("Renditen")+
  ylab("Dichte")+
  ggtitle("Renditeverteilung im Heston-Modell")+
  theme(plot.title=element_text(face="bold", size=16, vjust=2, family="Times New Roman"),  
        axis.title.x=element_text(vjust=-1, size=14, family="Times New Roman"),
        axis.title.y=element_text(vjust=-0.25, size=14, family="Times New Roman"), 
        legend.text=element_text(size=14, family="Times New Roman"), legend.title=element_blank(),
        legend.margin=unit(1, "cm"),
        legend.key.height=unit(1, "line"), 
        legend.key.size=unit(0.4, "cm"), 
        legend.key=element_rect(fill=NA), 
        legend.background=element_blank(),
        plot.margin=unit(c(1,1,1,1), "cm"))+
  scale_colour_manual(values=c("red","blue", "black"), labels=greeks)+
  guides(colour=guide_legend(override.aes=list(linetype=c(1,2,1))))
0
source share
1 answer

After stacking the data frame to simplify the construction:

df2 <- stack(df)
df2$ind <- as.character(df2$ind)

And, having done quite a few fruitless experiments, I finally found: problems with the ggplot scale, color, and linetype parameters

value1 = 0.8
value2 = 0.8
value3 = 0
greeks <- list(bquote(rho==.(value1)), bquote(rho==.(value2)), bquote(rho==.(value3)))

ggplot(data=df2)+
  stat_density(aes(x=values, group=ind, color=ind), 
               adjust=4, lwd=0.5, geom="line", position="identity")+
  xlim(-3, 3)+
  xlab("Renditen")+
  ylab("Dichte")+
  ggtitle("Renditeverteilung im Heston-Modell")+
  theme(plot.title=element_text(face="bold", size=16, vjust=2, family="Times New Roman"),  
        axis.title.x=element_text(vjust=-1, size=14, family="Times New Roman"),
        axis.title.y=element_text(vjust=-0.25, size=14, family="Times New Roman"), 
        legend.text=element_text(size=14, family="Times New Roman"), 
            legend.title=element_blank(),
        legend.margin=unit(1, "cm"),
        legend.key.height=unit(1, "line"), 
        legend.key.size=unit(0.4, "cm"), 
        legend.key=element_rect(fill=NA), 
        legend.background=element_blank(),
        plot.margin=unit(c(1,1,1,1), "cm"))+
  scale_colour_manual(values=1:3, labels=greeks) 
 +guides(colour=guide_legend(override.aes=list(linetype=1:3)))

enter image description here

, , , ggplot. , , , : https://github.com/hadley/ggplot2/issues/802

+4

Source: https://habr.com/ru/post/1526089/


All Articles