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

7z5jn7bk  于 2023-04-27  发布在  其他
关注(0)|答案(2)|浏览(119)

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

scale_colour_manual(breaks=c("A","B","C","D","E"), 
    values=c("green","orange","blue","pink","yellow"))

我想使用调色板中的第一种颜色scale_colour_brewer(type = "qual", palette = 7)代替“绿色”,然后使用调色板中的第四种颜色scale_colour_brewer(type = "qual", palette = 2)代替“橙子”,依此类推。

yks3o0rb

yks3o0rb1#

我经常做以下的事情,

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
njthzxwz

njthzxwz2#

一个简单的解决方案是使用HEX代码,而无需创建额外的函数。如果您使用RcolorBrewer网站,则每个调色板颜色都有一个。* 示例:*
scale_color_manual(values=c(“#1f78b4”,"#a6cee3”,"#fc8d62”,"#e41a1c”))
按照您需要的顺序将代码与其他ggplot2层相一致。这样,您可以从不同的RcolorBrewer调色板中选择和合并颜色。

相关问题