首页 > 解决方案 > 如何在 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()

我可以将蓝色刻度用于以下类别:沙漠、森林和苔原。您可以在此处查看输出。

但是,我想为每个这个类别使用不同的色阶。例如:甜点的黄色鳞片,森林的绿色鳞片和苔原的蓝色鳞片。谢谢!

标签: rggplot2graphicscolorbrewer

解决方案


最简单的方法是使用alpha透明度作为维度,正如可能的欺骗所建议的那样。得到一个漂亮的箱线图图例有点不同,这里有一个工作示例。(不过,由于它们有 x 标签,您可能只需要设置guide = FALSEalpha 比例。)

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"))

在此处输入图像描述


推荐阅读