美文网首页
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