我试图使用GGPLOT2/geom_boxplot以产生其中晶须被定义为在5位和第95百分位,而不是0.25的箱线图 - 1.5 IQR/0.75 + IQR并从这些新的晶须离群值被绘制如常.我可以看到geom_boxplot美学包括ymax/ymin,但我不清楚如何将值放在这里.这好像是:
stat_quantile(quantiles = c(0.05, 0.25, 0.5, 0.75, 0.95))
Run Code Online (Sandbox Code Playgroud)
应该能够提供帮助,但我不知道如何将此stat的结果与设置相应的geom_boxplot()美学联系起来:
geom_boxplot(aes(ymin, lower, middle, upper, ymax))
Run Code Online (Sandbox Code Playgroud)
我已经看过其他帖子,其中人们提到基本上手动构建一个类似boxplot的对象,但我宁愿保持整个boxplot格式塔完整,只是修改两个正在绘制的变量的含义.
我有两个分类因素('Habitat'和'Locality')和一个连续变量(T).'Habitat'有两个级别,'Locality'有八个级别.我想更改默认胡须来代表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')
Run Code Online (Sandbox Code Playgroud) 是否可以在 ggplot boxplot 中使用平均值而不是中位数?我问的原因是在我的数据中,中位数 = 0.0,平均值 = 0.40,我对平均值感兴趣。