我想在同一个地块上使用两个调色板。 我有两组不同的模态,我的目标是每组都有自己的调色板
我没有设法用scale_colour_brewer
来做到这一点任何人都可以帮助我。
欢呼声
我的主题实际上很广泛。 我要说明一下。
我可以总结我的数据如下:
| side | factor | Time | value |
|------|---------|------|-------|
| Left | methodA | 0 | 5 |
| Left | methodA | 1 | 3 |
| Left | methodA | 2 | 2 |
| Right| methodA | 2 | 2 |
| Right| methodA | 2 | 2 |
| Right| methodA | 2 | 2 |
| Left | methodB | 0 | 5 |
| Left | methodB | 1 | 3 |
| Left | methodB | 2 | 2 |
| Right| methodB | 2 | 2 |
| Right| methodB | 2 | 2 |
| Right| methodB | 2 | 2 |
我想绘制一系列价值与时间的关系 - 使用Side == Left的红色调色板和红色变化代表的因子 - 使用Side == Right的蓝色调色板和蓝色变化所代表的因子
欢呼声
答案 0 :(得分:1)
注意:当每组中的因子数相当小时,以下建议的方法是可行的。如果有许多不同的组因子组合,您的观众可能无法区分颜色的微小变化,在这种情况下,按组进行分组可以使更清晰的组合更加清晰。清洁图片。
(对于任何演示,我自己的工作假设是假设投影仪已经使用了10年,打印机耗尽了墨水,并且至少有一半的目标观众已经过期了新的处方镜片。 。)
# sample data
set.seed(10)
df <- data.frame(side = c(rep("Left", 3), rep("Right", 3), rep("Left", 3), rep("Right", 3)),
factor = c(rep("A", 6), rep("B", 6)),
time = rep(seq(1, 3), 4),
value = sample(seq(1, 10), 12, replace = T))
方法1 :按组&amp;而不是colour
。按因子
alpha
ggplot(df,
aes(x = time, y = value, colour = side, alpha = factor)) +
geom_line(size = 3) +
scale_alpha_discrete(name = "Factor", range = c(0.5, 1)) +
scale_color_manual(name = "Side", values = c("#1f78b4", "#33a02c")) +
theme_classic()
当线条不重叠太多时,这种效果最佳,因为重叠区域看起来更暗。
方法2 :(仅限2个因素)创建组合变量&amp;使用&#34;配对&#34;调色板
ggplot(df %>%
mutate(combined.variable = factor(paste(side, factor, sep = "~"))),
aes(x = time, y = value, colour = combined.variable)) +
geom_line(size = 3) +
scale_color_brewer(name = "Side~Factor", palette = "Paired") +
theme_classic()
RColorBrewer
软件包&#34;已配对&#34;调色板有12种颜色(大约)6对。如果你有&lt; = 6组&amp;每组中有2个因素,这可能是分配颜色的简单方法。这是一个色轮供参考: