在 geom_boxplot 中添加标准错误作为阴影区域而不是错误栏
Add standard error as shaded area instead of errorbars in geom_boxplot
我有 boxplot
并且我在箱形图上添加了带有 stat_summary
的均值作为一条线。我想添加 标准错误 ,但我不想添加 errorbar。
基本上,我想添加 标准错误 作为 阴影区域 ,你可以使用 geom_ribbon
。
我使用 PlantGrowth
数据集向您简要展示了我的尝试。
library(ggplot2)
ggplot(PlantGrowth, aes(group, weight))+
stat_boxplot( geom='errorbar', linetype=1, width=0.5)+
geom_boxplot(fill="yellow4",colour="black",outlier.shape=NA) +
stat_summary(fun.y=mean, colour="black", geom="line", shape=18, size=1,aes(group=1))+
stat_summary(fun.data = mean_se, geom = "errorbar")
我在 stat_summary
中使用 geom_errorbar
做到了这一点,并尝试用 geom_ribbon
替换 geom_errorbar
,正如我在网络上的其他一些示例中看到的那样,但是它不起作用。
有点像这个,但错误是阴影区域而不是错误条(这让人看起来有点混乱)
层叠如此多的 geom 变得难以阅读,但这里有一个带有几个选项的简化版本。除了稍微精简一下以查看我正在编辑的内容之外,我还添加了一个图块作为摘要几何; tile 与 rect 类似,只是它假定它将以 x 值为中心,因此您无需担心 geom_rect
要求的 x 轴位置。您可以尝试填充颜色和不透明度——我将箱线图设为白色只是为了更好地说明。
library(ggplot2)
gg <- ggplot(PlantGrowth, aes(x = group, y = weight)) +
stat_boxplot(geom = "errorbar", width = 0.5) +
geom_boxplot(fill = "white", outlier.shape = NA, width = 0.7) +
stat_summary(aes(group = 1), fun.y = mean, geom = "line")
gg +
stat_summary(fun.data = mean_se, geom = "tile", width = 0.7,
fill = "pink", alpha = 0.6)
根据您想要丝带的评论,您可以改用带 group = 1
的丝带,与线条相同。
gg +
stat_summary(aes(group = 1), fun.data = mean_se, geom = "ribbon",
fill = "pink", alpha = 0.6)
色带在离散变量上没有多大意义,但这里有一个连续组的一些虚拟数据的例子,这种设置变得更合理(尽管 IMO 仍然难以阅读)。
pg2 <- PlantGrowth
set.seed(123)
pg2$cont_group <- floor(runif(nrow(pg2), 1, 6))
ggplot(pg2, aes(x = cont_group, y = weight, group = cont_group)) +
stat_boxplot(geom = "errorbar", width = 0.5) +
geom_boxplot(fill = "white", outlier.shape = NA, width = 0.7) +
stat_summary(aes(group = 1), fun.y = mean, geom = "line") +
stat_summary(aes(group = 1), fun.data = mean_se, geom = "ribbon",
fill = "pink", alpha = 0.6)
我有 boxplot
并且我在箱形图上添加了带有 stat_summary
的均值作为一条线。我想添加 标准错误 ,但我不想添加 errorbar。
基本上,我想添加 标准错误 作为 阴影区域 ,你可以使用 geom_ribbon
。
我使用 PlantGrowth
数据集向您简要展示了我的尝试。
library(ggplot2)
ggplot(PlantGrowth, aes(group, weight))+
stat_boxplot( geom='errorbar', linetype=1, width=0.5)+
geom_boxplot(fill="yellow4",colour="black",outlier.shape=NA) +
stat_summary(fun.y=mean, colour="black", geom="line", shape=18, size=1,aes(group=1))+
stat_summary(fun.data = mean_se, geom = "errorbar")
我在 stat_summary
中使用 geom_errorbar
做到了这一点,并尝试用 geom_ribbon
替换 geom_errorbar
,正如我在网络上的其他一些示例中看到的那样,但是它不起作用。
有点像这个,但错误是阴影区域而不是错误条(这让人看起来有点混乱)
层叠如此多的 geom 变得难以阅读,但这里有一个带有几个选项的简化版本。除了稍微精简一下以查看我正在编辑的内容之外,我还添加了一个图块作为摘要几何; tile 与 rect 类似,只是它假定它将以 x 值为中心,因此您无需担心 geom_rect
要求的 x 轴位置。您可以尝试填充颜色和不透明度——我将箱线图设为白色只是为了更好地说明。
library(ggplot2)
gg <- ggplot(PlantGrowth, aes(x = group, y = weight)) +
stat_boxplot(geom = "errorbar", width = 0.5) +
geom_boxplot(fill = "white", outlier.shape = NA, width = 0.7) +
stat_summary(aes(group = 1), fun.y = mean, geom = "line")
gg +
stat_summary(fun.data = mean_se, geom = "tile", width = 0.7,
fill = "pink", alpha = 0.6)
根据您想要丝带的评论,您可以改用带 group = 1
的丝带,与线条相同。
gg +
stat_summary(aes(group = 1), fun.data = mean_se, geom = "ribbon",
fill = "pink", alpha = 0.6)
色带在离散变量上没有多大意义,但这里有一个连续组的一些虚拟数据的例子,这种设置变得更合理(尽管 IMO 仍然难以阅读)。
pg2 <- PlantGrowth
set.seed(123)
pg2$cont_group <- floor(runif(nrow(pg2), 1, 6))
ggplot(pg2, aes(x = cont_group, y = weight, group = cont_group)) +
stat_boxplot(geom = "errorbar", width = 0.5) +
geom_boxplot(fill = "white", outlier.shape = NA, width = 0.7) +
stat_summary(aes(group = 1), fun.y = mean, geom = "line") +
stat_summary(aes(group = 1), fun.data = mean_se, geom = "ribbon",
fill = "pink", alpha = 0.6)