2

我想在使用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我真的不知道问题是什么。

此外,我发现这个技巧可以geom_segment用来避免条形之间的重叠,但我没有在这段代码中使用它。

谢谢你帮助我!

4

1 回答 1

1

您正在堆叠您的数据,但不是您的错误栏。要计算错误栏和错误栏的堆叠版本,yminymax可以使用包的ddply功能plyr

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") 

输出:

在此处输入图像描述

于 2013-04-18T06:37:33.630 回答