r - 使用 stat_summary 在箱线图上选择颜色进行标记
问题描述
因此,有几个有用的页面是关于在具有多个系列的箱线图上标记方法的;但即使是那些我也遇到了一个问题,即我无法为点选择颜色并仍然显示两种不同的方式。我可以做这个:
library(ggplot2)
d <- subset(mpg,class=="compact"|class=="midsize")
ggplot(d,aes(drv,hwy,color=class)) + geom_boxplot() + scale_color_manual(values=c("blue","orange")) +
stat_summary(fun=mean,size=.5,shape=5,position=position_dodge(width=.75))
这给了我两种不同的方式,但它们与箱线图本身的颜色相同,因此不是最好看的。
所以我在代码中添加了一个颜色规范:
ggplot(d,aes(drv,hwy,color=class)) + geom_boxplot() + scale_color_manual(values=c("blue","orange")) +
stat_summary(fun=mean,size=.5,color="black",shape=5,position=position_dodge(width=.75))
但它只显示一个平均值。
那么我在这里缺少什么来获得指定的颜色和被标记的多种方式?
解决方案
当您覆盖其中的颜色美学时,stat_summary()
您也会丢失分组信息。您需要使用以下命令将其显式恢复aes(group = class)
:
library(ggplot2)
d <- subset(mpg, class == "compact" | class == "midsize")
ggplot(d, aes(drv, hwy, color = class)) +
geom_boxplot() +
stat_summary(
aes(group = class),
colour = "black",
fun = mean,
size = .5,
shape = 5,
position = position_dodge(width = .75)
)
#> Warning: Removed 4 rows containing missing values (geom_segment).
推荐阅读
- python - 为什么这个python Lark语法这么慢?
- ios - 在 SwiftUI 中从 Firebase 读取实时数据库中的数据
- forms - 用于从 camsonline 获取综合账户报表的 API 调用
- sql-server - 用于过滤跨列/不同行的值列表的高效查询
- javascript - 如何使用 ES6 解构赋值将一个对象分配给另一个对象
- google-chrome-extension - 如何检查浏览器扩展内容脚本是否已加载到后台页面中包含的外部 iframe 上?
- spring-boot - 在浏览器中,我无法获得引导表,而是出现白标错误
- typescript - 为什么在使用 `if` 缩小 TypeScript 接口时需要关键字 `as`?
- python - 替换从某一行开始的列
- python - 在 Python 中将 Int 转换为字符串