美文网首页
R语言 ggplot2 绘图中的配色(一)

R语言 ggplot2 绘图中的配色(一)

作者: 风知秋 | 来源:发表于2022-11-20 17:48 被阅读0次

在使用R语言进行绘图的过程中,很多时候不愿意用默认的配色(太丑),想要自己调整颜色,抽空这里整理了一下修改配色的方法;

主要用的是 scale_fill_xx scale_color_xx 分别调整填充色和边框颜色,二者用法完全一致的;

1)scale_color_manual

最常用的调整颜色的一个函数是 scale_color_manual,可以按照自己的想法任意配色。

p <- ggplot(data=mtcars, aes(x=mpg, y=disp, color=factor(cyl))) + geom_point()

p

上图使用的是默认配色,如果想要换成自己想要的配色,就可以用 scale_color_manual 函数指定,比如:

p + scale_color_manual(values = c("red", "yellow", "blue"))

2)scale_color_brewer

但不是任何时候我们都想指定配色方案的,毕竟自己拍脑门想到的可能会比默认更丑,R语言提供了一些palette,有系列配色可以供我们挑选。

以上就是colorbrewer.org的提供的默认配色方案,比如:如果我们想用Set2配色,只消得如下即可;

p + scale_color_brewer(palette = "Set2")

这里提供的配色方法还是挺美观的,尤其是底下离散型的配色,一点也不突兀,自己没有太好想法的时候不妨采用这个。

方向也可以改,direction = 1 表示正向,direction = -1 表示反向。使用方法为:

p + scale_color_brewer(palette = "Set2", direction = -1)

3)scale_colour_gradient

很多时候,渐变色或许是个很不错的选择,用以反映变量的连续变化,这里可以使用scale_colour_gradient() 函数,绘制双色梯度,scale_colour_gradient2() 绘制三色梯度,参数low 和high 用于控制此梯度两端颜色,三色梯度再增加一个 mid。

PS. 上面的 palette 也有梯度效果的配色方案。

举例说明一下:

ggplot(data=mtcars, aes(x=mpg, y=disp, color=qsec)) + geom_point() + scale_colour_gradient(low="lightgreen", high="darkgreen")

以上是三种常见的配色方案。

当然,也有其它的可以选择,比如:scale_fill_discrete 可以指定离散型配色;scale_colour_viridis_d() 和 scale_colour_viridis_c() 分别指定离散型和连续型的配色,等等,感兴趣可以自行查阅说明书,不多赘述。


但是,如果除了指定颜色,还想指定特定变量的特定颜色,或者指定变量以特定顺序排列在横坐标,以及图例填充颜色和横坐标排列顺序不一致时如何处理。

可以看一下我写的另一篇:

R语言 ggplot2 中指定横坐标变量或图例顺序(二)


就是,如果觉得有用的话,登录一下账号点个赞支持一下,欢迎评论交流!

相关文章

网友评论

      本文标题:R语言 ggplot2 绘图中的配色(一)

      本文链接:https://www.haomeiwen.com/subject/ppyatdtx.html