gpt4 book ai didi

r - 如何在R中的Boxplot中绘制均值和标准误差

转载 作者:行者123 更新时间:2023-12-04 12:34:49 24 4
gpt4 key购买 nike

我有两个分类因素('Habitat' 和'Locality')和一个连续变量(T)。 “栖息地”有两个级别,“地方”有八个级别。我想将默认的 mustache 更改为代表 SE,并将中位数更改为每个箱线图的平均值。有没有办法做到这一点,并在绘图时考虑到这两个分类因素?提前谢谢了。

这是我对 boxplot ggplot 的默认设置所做的,显示具有中值间隔的第一和第三四分位数。

ggplot(data,aes(x=Locality,y=T)) + 
geom_boxplot(aes(fill=interaction(Habitat,Locality),
group=interaction(factor(Habitat),Locality)),
outlier.shape=1,outlier.size=3) +
theme_bw() +
theme(
panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
axis.line=element_line(colour='black'),
legend.position='none',
axis.text.x=element_text(angle=90,hjust=1,size=12)) +
scale_y_continuous('T') +
xlab('Locality')

最佳答案

首先编写一个函数来计算 min、mean-1SEM、mean、mean+1SEM 和 Max。然后使用 stat_summary 将这 5 个值映射到箱线图上.

library(gridExtra)
library(ggplot2)

MinMeanSEMMax <- function(x) {
v <- c(min(x), mean(x) - sd(x)/sqrt(length(x)), mean(x), mean(x) + sd(x)/sqrt(length(x)), max(x))
names(v) <- c("ymin", "lower", "middle", "upper", "ymax")
v
}

g1 <- ggplot(mtcars, aes(factor(am), mpg)) + geom_boxplot() +
ggtitle("Regular Boxplot")

g2 <- ggplot(mtcars, aes(factor(am), mpg)) +
stat_summary(fun.data=MinMeanSEMMax, geom="boxplot", colour="red") +
ggtitle("Boxplot: Min, Mean-1SEM, Mean, Mean+1SEM, Max")


grid.arrange(g1, g2, ncol=2)

enter image description here

关于r - 如何在R中的Boxplot中绘制均值和标准误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25999677/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com