如何使用ggplot2添加具有标准偏差的误差线

时间:2019-05-01 21:35:34

标签: r ggplot2 standard-deviation

我想在我的线性图中绘制带有标准偏差的误差线。我不知道为什么它只能处理标准错误。我在做什么错了?

我尝试了几种方法,但是我不断出错。

library(ggplot2)
line = ggplot(alldata, aes(Time, Vol))
line +
  stat_summary(fun.y = mean, geom = 'point')+
  stat_summary(fun.y = mean, geom = "line", aes(group = 1))+
  stat_summary(fun.data = mean_se, geom = "errorbar", width = 0.5)+

mean_se正常工作时,但我需要sd

  ylab("V")+
  xlab("T)")+
  theme_bw()+
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.background = element_rect(colour = "black", size=2))
  • Time-x
  • Vol-y
  • alldata-数据框

我有自己的情节,但只有标准误差线

1 个答案:

答案 0 :(得分:0)

欢迎来到SO。请参阅here,了解如何创建最小的可复制示例。从中学习并修改您的问题。除此之外,一个很大的问题是反映已完成的充分研究的问题。之前没有类似问题的匮乏。因此,当您发布问题时,请确保提供充分的文档,说明您尝试了哪些步骤,包括类似的问题来查找解决方案。

在没有数据的情况下,我使用mtcars数据集。

mean_sdl使用参数mult,该参数指定标准差的数量-默认情况下为mult = 2。因此,您需要通过mult = 1

library(tidyverse)

#load mtcars dataset
mtcars <- mtcars
str(mtcars)
# coerce to factor for bar plot
mtcars$cyl<- as.factor(mtcars$cyl)
mtcars$gear<- as.factor(mtcars$gear)

ggplot(mtcars, aes(cyl, disp, fill = gear)) +
  geom_bar(stat = "summary", fun.y = "mean", na.rm = TRUE,
       position = position_dodge(width = 0.9)) +
  geom_errorbar(stat = "summary", fun.data = "mean_sdl", 
            fun.args = list(mult = 1),
            position =  position_dodge(width = 0.9)) +
  ylab("mean displacement") +
  ggtitle("Some plot")