r - 根据 facet_wrap 改变抖动点的颜色
问题描述
我想比较两个不同地点的不同颜色花朵(红色和绿色)的数量。我在 ggplot2 中有一个箱线图,背景中有一个抖动图。我希望抖动点的颜色根据花朵的颜色而有所不同。不知道该怎么做!有没有办法根据花的颜色对我的刻面进行颜色编码?
一些样本数据:
site <- c(rep(1, 4), rep(2, 4))
colour <- c("red", "green", "red", "green", "red", "green", "red", "green")
number <- c(12, 24, 22, 14, 12, 16, 18, 17)
df <- data.frame(site, colour, number)
df$site <- as.factor(df$site)
ggplot(df, aes(site, number))+
facet_wrap("colour")+
geom_jitter(alpha = 0.3) +
geom_boxplot(alpha = 0, colour = "black")+
theme(legend.position = "none")
解决方案
虽然这里的两个答案都解决了您的问题,但我认为它们不必要地令人费解。
ggplot(df, aes(site, number)) +
facet_wrap(~colour) +
geom_jitter(alpha = 0.3, color = colour) +
geom_boxplot(alpha = 0, color = "black")
由reprex 包(v0.3.0)于 2019 年 5 月 30 日创建
您不需要
theme(legend.position = "none")
,因为在您的geoms
内部没有任何参数aes()
。在其中一个答案中,虽然我们将图例位置设置为
none
(因为colour
在里面所以需要它aesthetics
),但我们也有show.legend = F
它是多余的。您的
colour
列已经存在c("red", "green")
,因此我们不需要使用scale_color
.
推荐阅读
- powerbi - Power bi - 用户留存率计算
- c# - 如何在 xamarin android 中禁用底部导航视图?
- java - java 全局对象引用在本地没有改变
- php - PHP反序列化删除对象属性
- java - Android Studio - 将项目根目录更改为“app”文件夹
- java - 如何测试方法抛出异常junit5
- c# - GetHashCode() 方法返回值而不是地址
- javascript - 在 JS RegExp 中转义特殊字符(在 jQuery .each() 中使用)
- javascript - 如何使用 webpack 在 web worker 中导入 wasm?
- javascript - document.execCommand ('copy') 在 React 中不起作用