如何在 ggplot2 中将 SE 错误栏添加到我的条形图中?
How do I add SE error bars to my barplot in ggplot2?
我用 ggplot2 制作了一个简单的条形图,比较了 2 种昆虫的雄性和雌性的平均寿命(年龄)。
我的代码看起来像这样,"dataset" 是我的数据集...
gplot(dataset, aes(Species, Age, fill=Sex))+
stat_summary(fun.y = mean, geom = "bar", position = "dodge")+
scale_fill_manual(values = c("Grey25", "Grey"))+
theme(legend.title = element_blank())+
scale_y_continuous(limits = c(0,15))
我尝试使用以下代码手动输入平均值±SE 的值来设置误差条的限制。为了简单起见,我们假设物种 1 的雄性均值 = 10 和 SE = 0.5。
geom_errorbar(aes(ymin=9.5, ymax=10.5),width=.2,position=position_dodge(.9))
此代码确实有效,但它为我图中的每个条设置了相同的误差条。
如何为图中的每个条添加等于相应 SE 的误差条?
总的来说,我对 ggplot 和 R 还比较陌生,所以欢迎 help/advice。
您可以使用 geom_errorbar
geom 在条形图上添加错误栏。
您需要提供 ymin
和 ymax
,因此您需要手动计算。
来自 geom_errorbar
帮助页面:
p + geom_errorbar(aes(ymin = lower, ymax = upper), width = 0.2)
你只需要将 stat_summary(geom = "errorbar", fun.data = mean_se, position = "dodge")
添加到你的情节中:
library(ggplot2)
ggplot(diamonds, aes(cut, price, fill = color)) +
stat_summary(geom = "bar", fun = mean, position = "dodge") +
stat_summary(geom = "errorbar", fun.data = mean_se, position = "dodge")
如果你喜欢预先计算值,你可以这样做:
library(tidyverse)
pdata <- diamonds %>%
group_by(cut, color) %>%
summarise(new = list(mean_se(price))) %>%
unnest(new)
pdata %>%
ggplot(aes(cut, y = y, fill = color)) +
geom_col(position = "dodge") +
geom_errorbar(aes(ymin = ymin, ymax = ymax), position = "dodge")
我用 ggplot2 制作了一个简单的条形图,比较了 2 种昆虫的雄性和雌性的平均寿命(年龄)。 我的代码看起来像这样,"dataset" 是我的数据集...
gplot(dataset, aes(Species, Age, fill=Sex))+
stat_summary(fun.y = mean, geom = "bar", position = "dodge")+
scale_fill_manual(values = c("Grey25", "Grey"))+
theme(legend.title = element_blank())+
scale_y_continuous(limits = c(0,15))
我尝试使用以下代码手动输入平均值±SE 的值来设置误差条的限制。为了简单起见,我们假设物种 1 的雄性均值 = 10 和 SE = 0.5。
geom_errorbar(aes(ymin=9.5, ymax=10.5),width=.2,position=position_dodge(.9))
此代码确实有效,但它为我图中的每个条设置了相同的误差条。
如何为图中的每个条添加等于相应 SE 的误差条?
总的来说,我对 ggplot 和 R 还比较陌生,所以欢迎 help/advice。
您可以使用 geom_errorbar
geom 在条形图上添加错误栏。
您需要提供 ymin
和 ymax
,因此您需要手动计算。
来自 geom_errorbar
帮助页面:
p + geom_errorbar(aes(ymin = lower, ymax = upper), width = 0.2)
你只需要将 stat_summary(geom = "errorbar", fun.data = mean_se, position = "dodge")
添加到你的情节中:
library(ggplot2)
ggplot(diamonds, aes(cut, price, fill = color)) +
stat_summary(geom = "bar", fun = mean, position = "dodge") +
stat_summary(geom = "errorbar", fun.data = mean_se, position = "dodge")
如果你喜欢预先计算值,你可以这样做:
library(tidyverse)
pdata <- diamonds %>%
group_by(cut, color) %>%
summarise(new = list(mean_se(price))) %>%
unnest(new)
pdata %>%
ggplot(aes(cut, y = y, fill = color)) +
geom_col(position = "dodge") +
geom_errorbar(aes(ymin = ymin, ymax = ymax), position = "dodge")