ggplot2 调整图像颜色

以下内容转自 数析学院,原文后续还有 颜色选取、亮度和饱和度设置、自定义调色板、渐变色 等内容,感兴趣的同学可以先直接查看原文

在 R 中,如何使用 ggplot2 来调整数据图像中的颜色?另外,ggplot2 中默认的颜色配置都具有相等的亮度,这有时会使得色块间难以区分,对于色盲朋友们来说是十分不友好的。为了解决这个问题,最好是调用一个具有“色盲模式”的调色板,下面将告诉大家如何做到这一点。

将会用到以下两个示例数据集用于图像生成:

# 双变量 
    df <- read.table(header=TRUE, text='
     cond yval
        A 2
        B 2.5
        C 1.6
    ')

    # 三变量 
    df2 <- read.table(header=TRUE, text='
     cond1 cond2 yval
        A      I 2
        A      J 2.5
        A      K 1.6
        B      I 2.2
        B      J 2.4
        B      K 1.2
        C      I 1.7
        C      J 2.3
        C      K 1.9
    ')
1、简单颜色分配

在 ggplot2 中,对于线和点的颜色调整我们可以直接改变 colour 参数,如设置 colour=”red” 或其他颜色的名字。而对于一些作为对象填充的颜色,如直方图中条形的颜色,则可以通过改变fill参数来控制,如 fill=”red”。
如果你不想局限于使用一些经典的颜色,我们也可以通过制定色彩代码的方式来指定颜色,如 “#FF6699”。(下文中我们将会给出常见色彩代码的列表。)

library(ggplot2)
    # 默认:深色条形 
    ggplot(df, aes(x=cond, y=yval)) + geom_bar(stat="identity")
    # 红色外框线的条形 
    ggplot(df, aes(x=cond, y=yval)) + geom_bar(stat="identity", colour="#FF9999") 
    # 红色填充,黑色外框 
    ggplot(df, aes(x=cond, y=yval)) + geom_bar(stat="identity", fill="#FF9999", colour="black")


    # 标准黑色的线与点 
    ggplot(df, aes(x=cond, y=yval)) + 
        geom_line(aes(group=1)) +     # 组合所有的点,如果不这么做的话我们是看不到直线的 
        geom_point(size=3)
    # 深蓝色的线,红色的点 
    ggplot(df, aes(x=cond, y=yval)) + 
        geom_line(aes(group=1), colour="#000099") +  # 蓝线 
        geom_point(size=3, colour="#CC0000")         # 红点

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

2、将变量值映射为颜色

除了对颜色进行全局性的修改,我们也可以将变量值映射为颜色——也就是说我们用颜色来表示某个变量,这么做需要将它置于 aes() 命令之中。

# 条形图:x轴及其填充都取决于变量cond2 
    ggplot(df, aes(x=cond, y=yval, fill=cond)) + geom_bar(stat="identity")

    # 通过另一个数据集构建的条形图;填充色取决于cond2 
    ggplot(df2, aes(x=cond1, y=yval)) + 
        geom_bar(aes(fill=cond2),   # 填充色取决于cond2 
                 stat="identity",
                 colour="black",    # 为所有元素添加黑色外框线 
                 position=position_dodge()) # 使同组条形紧密排列 

    # 线与点;填充色取决于cond2 
    ggplot(df2, aes(x=cond1, y=yval)) + 
        geom_line(aes(colour=cond2, group=cond2)) + # colourgroup都取决于cond2 
        geom_point(aes(colour=cond2),               # colour取决于cond2 
                   size=3)                          # 较大的数据点,不同的点形状 
    ## 下列代码于上文绘制折线图的效果一致;将"colour=cond2"移至了全局映射aes()中 
    # ggplot(df2, aes(x=cond1, y=yval, colour=cond2)) + 
    #    geom_line(aes(group=cond2)) +
    #    geom_point(size=3)

这里写图片描述
这里写图片描述
这里写图片描述

3、色盲模式调色板

下图所示的便是色盲模式调色板,其中一个带有灰色,而另一个则含有黑色。

这里写图片描述

通过ggplot2,我们可以将调色板存储为一个变量,以方便之后的使用。

# 含灰色的调色板 
    cbPalette <- c("#999999", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7")

    # 含黑色的调色板 
    cbbPalette <- c("#000000", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7")

    # 用于改变填充色时,我们需要加入 
      scale_fill_manual(values=cbPalette)

    # 用于改变点线颜色时,我们需要加入 
      scale_colour_manual(values=cbPalette)

discrete_scale(aesthetics = aesthetic, scale_name = “manual”, palette = pal)

ggplot(df, aes(x=cond, y=yval, fill=cond)) + geom_bar(stat="identity") + scale_fill_manual(values=cbPalette)

这里写图片描述

我们的色盲模式调色板源自于 http://jfly.iam.u-tokyo.ac.jp/color/:

这里写图片描述

以上内容转自 数析学院,原文后续还有 颜色选取、亮度和饱和度设置、自定义调色板、渐变色 等内容,感兴趣的同学可以先直接查看原文

  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值