我用带有3个变量的数据框创建了一个带有ggplot的密度图.一条密度线是虚线,但图例显示该线的实线.
数据如下所示:
> head(df) R1 R2 R3 1 0.085383867 0.04366546 0.055320885 2 0.059148932 0.03477045 0.040804048 3 -0.181279986 -0.10189900 -0.097218145 4 0.002307494 -0.01137235 -0.003585813 5 -0.047816198 -0.04932982 -0.009389939 6 0.030535090 0.02544292 0.017650949
该图的代码是:
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"), linetype=2, adjust=4, lwd=0.5, geom="line", position="identity")+ xlim(-0.5, 0.5)+ xlab("Renditen")+ ylab("Dichte")+ ggtitle("Renditeverteilung im Heston-Modell")+ theme(plot.title=element_text(face="bold", size=16, vjust=2), axis.title.x=element_text(vjust=-1, size=12), axis.title.y=element_text(vjust=-0.25, size=12), legend.text=element_text(size=12), legend.title=element_text(size=12), legend.margin=unit(1.5, "cm"), legend.key.line"), legend.key.size=unit(0.4, "cm"), legend.key=element_rect(fill=NA), legend.background=element_rect(colour="darkgrey"), 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"), name="Korrelation")
最后的情节:
如何让图例显示第三条密度线(变量R3)的虚线?
先感谢您!
把linetype=
里面aes()
的每一个stat_density()
具有相同名称作为colors=
,然后使用scale_linetype_manual()
你需要设置类型.如果对线型和颜色使用相同的图例名称,则两个图例将放在一起.
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(-0.5, 0.5)+ xlab("Renditen")+ ylab("Dichte")+ ggtitle("Renditeverteilung im Heston-Modell")+ theme(plot.title=element_text(face="bold", size=16, vjust=2), axis.title.x=element_text(vjust=-1, size=12), axis.title.y=element_text(vjust=-0.25, size=12), legend.text=element_text(size=12), legend.title=element_text(size=12), legend.margin=unit(1.5, "cm"), legend.key.line"), legend.key.size=unit(0.4, "cm"), legend.key=element_rect(fill=NA), legend.background=element_rect(colour="darkgrey"), 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"), name="Korrelation")+ scale_linetype_manual(values=c("rho = -0,6"=1, "rho = 0,6"=1, "rho = 0"=2), name="Korrelation")