【发布时间】:2015-09-30 20:13:07
【问题描述】:
我正在尝试制作两个情节。一个显示了变量 x 按因子 category1 拆分的箱线图,第二个图是相同的,但针对变量 y。
我在下面提供了可重现的代码。
require(ggplot2)
dataset <- data.frame(category1 = rep(LETTERS[1:5], 100),
y = rnorm(500, mean = rep(1:5, 100)),
z = rnorm(500, mean = rep(c(1:4,NA), 100)))
ggplot(dataset, aes(x=factor(category1), y=y, fill=category1)) + geom_boxplot()
ggplot(dataset, aes(x=factor(category1), y=z, fill=category1)) + geom_boxplot()
这些图都很好,只是我希望颜色能够通过,即 category1 中 A 的颜色始终是相同的红色阴影。我知道 ggplot 是基于色轮除以 5,然后分别除以 4 进行着色的,但我不知道如何使它始终除以 5 并始终使用相同的颜色,即使没有值 E在因子 z 中,在第二个图中。
【问题讨论】:
-
您可以手动设置颜色:
+ scale_fill_manual(values = palette("default"))到每个绘图 -
@scoa,这行得通。我结合了一种方法来模拟here中的ggplot颜色选择方法,以产生所需的效果。该解决方案似乎并不像 ggplot 那样优雅。
-
scale_fill_discrete(drop = FALSE)和this answer 一样吗?在the answers here 中针对更复杂的情况提供了一些更复杂的答案。 -
@aosmith 是的!这似乎可以做到,我没有看到那个答案,但是另一个使用
scale_fill_discrete的values我包含的参数似乎使它不起作用。我将在下面更新我的答案以反映您的评论。