我可以调整scale_color_brewer的下限吗?

时间:2014-11-21 06:03:16

标签: r ggplot2 colorbrewer

我已经订购了我想要使用颜色酿酒师的分类数据。但我很难看到非常低的值。有没有办法可以削减这些较低的值或设置比例的下限?

ggplot(data.frame(x=1:6, y=10:15, w=letters[1:6]), aes(x, y, color=w)) + 
geom_point()+ scale_color_brewer(type="seq", palette=1) + theme_bw()

有更好的方法吗?到目前为止,我要么看到没有排序的定性尺度,要么看到不适合应用于离散数据的连续尺度。如果这是唯一的路线,我就知道手动秤。

3 个答案:

答案 0 :(得分:4)

您不能只设置下限。但是您可以使用颜色多于所需颜色的调色板,并将最亮的颜色映射到未使用的级别。以下是9个级别的示例:

ggplot(data.frame(x=1:6, y=10:15, w=letters[1:6]), aes(x, y, color=w)) + 
  geom_point() + theme_bw() + 
  scale_color_brewer(type="seq", palette=1, 
                     limits=c(LETTERS[1:3], letters[1:6]), 
                     breaks=letters[1:6])

答案 1 :(得分:1)

我不知道您可以传递给scale_colour_brewer()的任何其他参数来设置比例的下限(参见http://docs.ggplot2.org/current/scale_brewer.html

ggplot的颜色选项之一具有更大的灵活性,其格式为:scale_xxx_yyy,例如scale_fill_discrete(),它采用更多参数。例如,请参阅http://docs.ggplot2.org/current/scale_hue.html,但也请注意其他选项('另请参阅')。

scale_fill_continuous可能是您所要求的序数据的良好起点。

例如,您可以将http://colorbrewer2.org/的颜色传递给它,并选择更合适的起始颜色。唯一的问题是您需要使用以下工具将rgb / hex值转换为HSL值:http://serennu.com/colour/hsltorgb.php

答案 2 :(得分:1)

虽然@shadow的答案对我来说是个开始,但我需要使用的(顺序的)酿酒机调色板只有9个值-我要绘制8个分类变量!仅除去第9个最浅的调色板颜色仍然不足以使配色方案完全可见。

所以我使用了colorRampPalette()函数,该函数允许您将现有的调色板扩展为连续的函数:

library(RColorBrewer)
ggplot(data.frame(x=1:6, y=10:15, w=letters[1:6]), aes(x, y, color=w)) + 
  geom_point() + theme_bw() + 
  scale_color_manual(values = colorRampPalette(brewer.pal(9, "YlGnBu"))(12)[6:12])

因此,在这种情况下,我将“ YlGnBu”调色板中的(最多)9种原色映射到12种颜色上,然后仅使用绘图中这些颜色中最暗的6种([6:12])。