绘制多个框图和STAT_SUMMARY位置 [英] ggplot multiple boxplots and stat_summary position

查看:0
本文介绍了绘制多个框图和STAT_SUMMARY位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下代码。我想更改框图的颜色,使它们都具有相同的填充颜色(灰色)。 另外,我希望STAT_SUMMARY文本粘在每个条形图的底部,但似乎只提供相对位置?

谢谢

boxp <- ggplot(mtcars, aes(as.factor(cyl), wt, fill=as.factor(am)) ) +
  geom_bar(position = "dodge", stat = "summary", fun.y = "median") +
  geom_boxplot(outlier.shape = NA, width=0.2, color = "black", position = position_dodge(0.9)) +
  stat_summary(aes(label=round(..y..,2)), fun.y=median, geom="text", size=8, col = "white", vjust=8, position = position_dodge(0.9)) +
  stat_summary(fun.y=mean, geom="point", shape=18, size=4, col="white", position = position_dodge(0.9)) +
  labs(x = "Conditions", y = "Medians") +
  scale_y_continuous(limits=c(0,7),oob = rescale_none) +
  theme_bw()
boxp

推荐答案

以下是一种可能的解决方案,但它需要stage()函数的gggraph v3.3.0。

指出主要变化:

  • 我没有将填充用作隐式分组,而是显式设置了分组,这样它就不会绑定到填充。
  • 我添加了填充,以体现酒吧的美感。
  • 盒图现在具有未映射的美学fill = 'gray'
  • 文本统计摘要使用stage()计算统计数据,但随后使用0作为实际放置位置。
library(ggplot2)
library(scales)

ggplot(mtcars, aes(as.factor(cyl), wt,
                   group = interaction(as.factor(cyl), as.factor(am)))) +
  geom_bar(aes(fill=as.factor(am)), position = "dodge", stat = "summary", fun = "median") +
  geom_boxplot(outlier.shape = NA, width=0.2, 
               color = "black", fill = 'gray',
               position = position_dodge(0.9)) +
  stat_summary(aes(label=round(after_stat(y), 2), y = stage(wt, after_stat = 0)), 
               fun=median, geom="text", size=8, col = "white", vjust=-0.5,
               position = position_dodge(0.9)) +
  stat_summary(fun=mean, geom="point", shape=18, size=4, col="white", position = position_dodge(0.9)) +
  labs(x = "Conditions", y = "Medians") +
  scale_y_continuous(limits=c(0,7),oob = rescale_none) +
  theme_bw()

创建于2020-05-06reprex package(v0.3.0)

这篇关于绘制多个框图和STAT_SUMMARY位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆