【问题标题】:Error bars on stacked area graph with ggplot2ggplot2堆积面积图上的误差线
【发布时间】:2013-04-10 07:38:06
【问题描述】:

我想在使用ggplot2 创建的堆积面积图上添加误差线。

我的 csv 文件看起来像:

Day  Cat  Val   Error  
0    A    0     0.00  
0    B   44.77  1.16  
0    C   54.64  0.88  
13   A   1.34   0.32  
13   B   22.78  0.45  
13   C   38.33  2.12  
19   A   1.95   0.35  
19   B   24.00  2.25  
19   C   40.30  3.86

我试过了:

ggplot(data=mydata, aes(x=Day,y=Val, group=Cat, fill=Cat,colour=Cat, ymax=Val + Error,   ymin= Val - Error)) +
 geom_area() +
 geom_errorbar(width=.5, color="black")

我有这个:

我对图表的面积图部分很满意,但误差线没有堆叠在数据点上。

我刚刚开始使用R,我真的不知道问题出在哪里。

此外,我发现这个tip 使用geom_segment 来避免条形之间的重叠,但我未能将它与此代码一起使用。

谢谢你帮助我!

【问题讨论】:

  • 我已经编辑了第一条消息:)

标签: r ggplot2 stacked-area-chart


【解决方案1】:

您正在堆叠您的数据,而不是您的错误栏。要计算误差条的yminymax 的堆叠版本,您可以使用plyr 包的ddply 函数。

library(plyr) 
mydata2 <- ddply(mydata,.(Day),transform,ybegin = cumsum(Val) - Error,yend = cumsum(Val) + Error)   

ggplot(data=mydata2, aes(x=Day,y=Val, fill=Cat)) +
     geom_area() +
     geom_errorbar(aes(ymax=ybegin , ymin= yend ),width=.5, color="black") 

输出:

【讨论】:

  • 感谢您的代码!它适用于我的数据,但我收到 4 次此错误消息:删除了 2 行包含缺失值 (geom_path)。我认为它出现是因为错误列包含很少的 0。
  • 我认为的警告信息(我使用的是法语版本的 R)
猜你喜欢
  • 2013-05-13
  • 1970-01-01
  • 2016-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-06
相关资源
最近更新 更多