如何在R中创建具有累积标准偏差的条形图?

时间:2017-10-13 09:39:19

标签: r ggplot2

我想制作一个与Lindfield等人所附的情节类似的情节。 2016.我熟悉R中的ggplot命令,格式为:

ggplot(dataframe, aes(x, y)) + geom_bar(stat = 'identity')

但是,我不知道如何为堆积的条形图制作累积se错误;只有一个使用position_dodge命令。

我知道使用带有se错误的堆叠条有一些缺点,但对于我的数据集,它比使用未堆叠的条形图更具代表性。

感谢。

enter image description here

1 个答案:

答案 0 :(得分:0)

我不知道如何以适当的方式获得累积标准错误(我猜这取决于您的值是如何生成的)但我认为您需要计算它们并将它们存储在第二个DF中,例如,如果你有一个像这样创建的初始data.frame:

DF <- data.frame( x=c("a","a","b","b"),
                  sp=c("shark","cod","shark","cod"),
                  y=c(10,5,15,7),
                  stringsAsFactors=FALSE )

其中y是每个x点处与每个物种相关的值,然后您创建第二个DF,其中包含您的s.e的下限和上限。对于每个x值,例如

seDF <- data.frame( x=c('a','b'),
                    yl=c(12,18),
                    yu=c(17,24),
                    stringsAsFactors=FALSE )

然后你可以用:

创建你的情节
ggplot() +
 geom_bar( data=DF, mapping=aes(x=x,y=y,fill=sp),
           position="stack", stat="identity") +
 geom_linerange( data=seDF, mapping=aes(x=x, ymin=yl, ymax=yu) )

我使用geom_linerange而不是geom_errorbar,因为它不会在任何一端创建交叉开关。

Output of example code