【问题标题】:Line plus bar chart in ggplot2ggplot2中的线加条形图
【发布时间】:2014-01-22 18:01:41
【问题描述】:

我正在尝试使用 ggplot 绘制线加条形图,但出现错误“错误:ggplot2 不知道如何处理 uneval 类的数据”

require(ggplot2)    
df.1 <- data.frame(x = c(1:5), y = rnorm(5))
df.2 <- data.frame(x = c(1:10), y = runif(10))

p <- ggplot(df.1, aes(x=x, y=y)) + 
    geom_bar(stat = "identity") +
    geom_line(df.2, aes(x=x, y=y))

两个数据框的 x 轴刻度始终相同,但一个需要绘制为折线图,而另一个需要绘制为条形图。在我看来,ggplot2 不支持两个数据框。有没有办法解决这个问题?

我尝试通过 rCharts 使用 nvd3,但目前似乎不支持 linePlusBarChart。

提前致谢!!!

【问题讨论】:

    标签: r


    【解决方案1】:

    只需显式覆盖data= 参数:

    ggplot(df.1, aes(x=x, y=y)) + 
      geom_bar(stat = "identity") +
      geom_line(data=df.2, aes(x=x, y=y))
    

    注意,这实际上是因为 data 是绘图层默认的第二个属性(不同于基本的 ggplot 调用),所以geom_line(aes(x=x, y=y),df.2) 也可以工作

    【讨论】:

    • 非常感谢。这很完美。顺便问一下,有没有办法为ggplot2添加工具提示?
    • @Troy,非常感谢您的示例。我遇到了类似的绘图问题并且被卡住了,因为我无法在网上找到任何教程或示例,只需几行代码即可构建组合条形图和折线图。