我有自己的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")
我在geom_errorbar
中使用stat_summary
进行了此操作,并尝试将geom_errorbar
替换为geom_ribbon
,正如我在网络上的其他示例中所看到的那样,但是它没有工作。
类似这样的东西,但是错误区域为阴影区域而不是错误条(这使它看起来有些混乱)
答案 0 :(得分:2)
分层这么多的几何图形变得很难阅读,但是这是带有一些选项的简化版本。除了将内容精简一下以查看正在编辑的内容外,我还添加了一个图块作为摘要几何图形; 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)