如何在R中的ggplot中为条形图添加误差线

时间:2019-04-29 05:58:30

标签: r ggplot2 statistics ggplotly

我最近尝试向在R中的ggplot中创建的条形图中添加误差线。但是,当我查找geom_errorbar时,看来唯一记录的方法是创建另一个保存ymin的数据框。和每个条形的ymax,然后使用stat ='identity'属性绘制条形图,这似乎很麻烦。

例如,这是显示在geom_errorbar帮助页面中的示例:

df <- data.frame(
  trt = factor(c(1, 1, 2, 2)),
  resp = c(1, 5, 3, 4),
  group = factor(c(1, 2, 1, 2)),
  se = c(0.1, 0.3, 0.3, 0.2)
)
df2 <- df[c(1,3),]

# Define the top and bottom of the errorbars
limits <- aes(ymax = resp + se, ymin=resp - se)

p <- ggplot(df, aes(fill=group, y=resp, x=trt))
p + geom_bar(position="dodge", stat="identity")

# Because the bars and errorbars have different widths
# we need to specify how wide the objects we are dodging are
dodge <- position_dodge(width=0.9)
p + geom_bar(position=dodge) + geom_errorbar(limits, position=dodge, width=0.25)

有没有一种更好的方法,而不必使用stat ='identity'绘图?

1 个答案:

答案 0 :(得分:0)

有一种使用geom_errobars绘制误差线的简便得多的方法,由于某种原因,该文件很少记录。基本上,您只需要对geom_errorbar对象使用stat ='summary'。

ggplot(data=mtcars, aes(x=gear, y=hp)) + geom_bar(stat='summary') + geom_errorbar(stat='summary', width=.2)

这是正确的,如果您只想使用误差线来描述误差线两侧的标准偏差(您可能希望使用其他度量,例如置信区间等)