【问题标题】:ggplot Legend Bar and Line in Same Graphggplot 图例中的条形图和线形图
【发布时间】:2015-05-26 16:55:47
【问题描述】:

我在同一张图表上绘制条形图和折线图,我想知道是否有办法让 ggplot 的图例说条形图用于一件事,而线条用于另一件事。也就是说,与其识别它们填充的内容(我知道该怎么做),不如使用“line = 西红柿”、“bar = 土豆”的内容。

数据:

x <- c(0:10)
y1 <- c(0,.5,1,1.5,2,2.5,3,3.5,4,4.5,5)
y2 <- append(c(1:5),c(6,8,10,12,14,16))
mydata <- as.data.frame(cbind(x,y1,y2))

【问题讨论】:

    标签: r ggplot2 legend


    【解决方案1】:
    x=c(0:10)
    

    见下面的代码。您需要具有美学映射才能显示图例。任何看到这个的人都可以随意提出一种方法来在一个传奇上做到这一点,以摆脱两者之间看起来有点难看的空间。

    y1=c(0,.5,1,1.5,2,2.5,3,3.5,4,4.5,5)
    y2=append(c(1:5),c(6,8,10,12,14,16))
    mydata1=data.frame(x=x,line=y2,Type="Line")
    mydata2=data.frame(x=x,bar=y1,Type="Bar")
    
    ggplot(data=mydata1) + geom_line(aes(x=x,y=line,linetype=Type)) +
      geom_bar(data=mydata2,aes(x=x,y=bar,fill=Type),stat="identity") +
      scale_fill_manual(values=c("black","black")) +
      guides(fill = guide_legend(override.aes=list(fill=c("black")))) +
      labs(fill="", linetype="")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-02
      • 2019-06-21
      • 2023-01-27
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      • 2013-06-02
      • 1970-01-01
      相关资源
      最近更新 更多