从RColorBrewer调色板中选取单个颜色作为ggplot2中的scale_colour_manual()值

Rod*_*phe 6 r ggplot2

使用scale_colour_manual(),可以从RColorBrewer中选择特定颜色作为颜色值吗?

例如,在:

scale_colour_manual(breaks=c("A","B","C","D","E"), 
    values=c("green","orange","blue","pink","yellow")) 
Run Code Online (Sandbox Code Playgroud)

我想使用调色板中的第一种颜色scale_colour_brewer(type = "qual", palette = 7)而不是"绿色",然后使用调色板的第四种颜色scale_colour_brewer(type = "qual", palette = 2)而不是"橙色",依此类推.

bap*_*ste 17

我经常这样做,

library(RColorBrewer)
my_palette = c(brewer.pal(5, "Set1")[c(1,3,4,5)], brewer.pal(5, "Pastel1")[c(2,5,1,3)])
#grid::grid.raster(my_palette, int=F)

scale_colour_discrete = function(...) scale_colour_manual(..., values = palette())

dsamp <- diamonds[sample(nrow(diamonds), 1000), ]
(p <- qplot(carat, price, data = dsamp, colour = clarity)) # default palette

palette(my_palette)
p # custom colors
Run Code Online (Sandbox Code Playgroud)

  • 随意尝试并使用最适合您的方法.我们的想法是定义您自己的首选颜色向量,并将它们作为值提供给scale_colour_manual.我使用palette()技巧,以便我的代码运行,无论我是否忘记在我的脚本中包含我的自定义颜色. (2认同)