图例不显示ggplot2密度图中的线型

 军校招生顾问天使 发布于 2023-02-12 20:13

我用带有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)的虚线?

先感谢您!

1 个回答
  • 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")
    

    在此输入图像描述

    2023-02-12 20:21 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有