r - 使用 geom_violin 分层小提琴图以比较分布
问题描述
我正在尝试使用小提琴图比较组间连续变量的分布。相当容易。但是,我想通过在背景中以低 alpha 值显示其中一组(参考)的分布来更容易地进行分布比较。像这样,但有小提琴情节:
我目前的方法将数据绘制了两次。首先geom_violin
,我复制了参考组的数据并将其绘制为灰色。第二geom_violin
,我使用实际数据d
。在此示例中,灰色和蓝色的两个小提琴图对于“蓝色”组应该看起来相同。但是,即使它们基于组“蓝色”的完全相同的数据,它们也不相同。
我该如何解决这个问题?还是有另一种更好的方法来做到这一点?
d <- tibble(
group = sample(c("green", "blue"), 1000, replace = TRUE, prob = c(0.7, 0.3)),
x = ifelse(group == "green", rnorm(1000, 1, 1), rnorm(1000, 0, 3))
)
dblue <- filter(d, group == "blue")
dblue <- bind_rows(dblue, mutate(dblue, group = "green"))
ggplot(d, aes(x = factor(group), y = x)) +
geom_violin(data = dblue, fill = alpha("#333333", 0.2), color = alpha("#333333", 0)) +
geom_violin(fill = alpha("#0072B2", 0.8), color = alpha("#0072B2", 0))
解决方案
推荐阅读
- reactjs - Storybook main.ts:不能在模块外使用 import 语句
- php - PHP数组获取不同的数字
- python - 继承验证类的直观方法
- python - 找到孩子和父母之间所有可能的联系
- c# - 正确处理参数
- python - 为什么 xml 文件中的 .findall 无法正确读取?
- amazon-dynamodb - 如何计算 DynamoDB 项目大小?
- android - 您的设备与 Google Play 中的此版本不兼容,但使用其 apk 可以正常工作
- javascript - 如何搜索表格的第二列而不是第一列
- basic-authentication - 无法使用 Zeep 和基本身份验证调用 Soap 方法