我可以调整scale_color_brewer的下限吗?

Tom*_*Tom 5 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()
Run Code Online (Sandbox Code Playgroud)

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

sha*_*dow 5

您不能只是设置下限。但是,您可以使用颜色多于所需颜色的调色板,并将最亮的颜色映射到未使用的级别。以下是具有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])
Run Code Online (Sandbox Code Playgroud)


lau*_*tta 5

虽然 @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])
Run Code Online (Sandbox Code Playgroud)

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