r - 如何在 R 中使用 ggplot2 将不同颜色放入多因素箱线图中?
问题描述
我正在 ggplot2 中制作箱线图,但我一直无法找到一种方法来处理 3 x 3 因子设计中的多种颜色。
这是我能够做的示例代码(使用此线程作为指南):
library(ggplot2)
data <- data.frame(
value = sample(1:50),
animals = sample(c("cat","dog","zebra"), 50, replace = TRUE),
region = sample(c("forest","desert","tundra"), 50, replace = TRUE)
)
ggplot(data, aes(animals, value)) + geom_boxplot(aes(fill = animals)) +
facet_grid(~region) + scale_fill_brewer()
我可以将蓝色刻度用于以下类别:沙漠、森林和苔原。您可以在此处查看输出。
但是,我想为每个这个类别使用不同的色阶。例如:甜点的黄色鳞片,森林的绿色鳞片和苔原的蓝色鳞片。谢谢!
解决方案
最简单的方法是使用alpha
透明度作为维度,正如可能的欺骗所建议的那样。得到一个漂亮的箱线图图例有点不同,这里有一个工作示例。(不过,由于它们有 x 标签,您可能只需要设置guide = FALSE
alpha 比例。)
ggplot(data, aes(animals, value)) +
geom_boxplot(aes(fill = region, alpha = animals)) +
facet_grid( ~ region) +
scale_alpha_discrete(
range = c(0.3, 0.9),
guide = guide_legend(override.aes = list(fill = "black"))) +
scale_fill_manual(values = c("goldenrod2", "forestgreen", "dodgerblue4"))
推荐阅读
- php - Symfony 4 说找不到实体,但实体存在并在不同的控制器中工作
- vb.net - 与 Visual Studio 不同,当从调试文件夹执行 .exe 时,程序没有响应并被冻结
- yii2 - 如何在 Yii2 中添加自己的命名空间
- python - 在 Flask 中使用自定义装饰器时出现 400 错误请求错误
- stanford-nlp - CoreNLP:English_SD模型最后更新时间
- angular - LoginServices 单元测试
- java - 标题 ObservableField 默认为应用名称
- unit-testing - 模块
未找到转换选项中的 /node_modules/vue-jest - graph-theory - 图数据库中的边方向应该如何?
- node.js - 使用 npm init 时如何修复“ENOENT:没有这样的文件或目录”错误?