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

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

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

# 双变量 df <- read.table(header=TRUE, text='cond yvalA 2B 2.5C 1.6')# 三变量 df2 <- read.table(header=TRUE, text='cond1 cond2 yvalA      I 2A      J 2.5A      K 1.6B      I 2.2B      J 2.4B      K 1.2C      I 1.7C      J 2.3C      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)) + # colour和group都取决于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/:

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

ggplot2 调整图像颜色相关推荐

  1. qimage 像素 替换颜色_有了PS,图像颜色替换,想怎么来就怎么来

    在PS中调整图像颜色时,如果只想将图像某一部分的颜色更改为其他颜色,应该怎么办呢? 此时,我们可以用PS中的[颜色替换工具]来实现,可以快速对图像中特定的颜色进行替换,而且会保留原图的明暗. [颜色替 ...

  2. R语言可视化包ggplot2包通过因子变量设置图像颜色实战

    R语言可视化包ggplot2包通过因子变量设置图像颜色实战 目录 R语言可视化包ggplot2包通过因子变量设置图像颜色实战 <

  3. 调整图像- 自动对比度、自动色阶算法

    调整图像- 自动对比度.自动色阶算法 我们以24位彩色图像为例说明这两个算法. 在执行两个算法之前,我们需要确定两个参数,大家在用PS时选择自动色阶并不会弹出什么参数设置对话框,那是因为PS把这个隐藏 ...

  4. 图像颜色迁移《color transfer between images》

    前言 前段时间,在深度学习领域不是有个比较火的方向叫风格迁移的嘛,对于我这种不喜欢深度学习那种不稳定结果的人来说,还是想看看传统图像处理领域有什么类似的技术,发现了一个颜色迁移的算法,很久前的论文了. ...

  5. python调整图像大小_使用Python调整图像大小

    作者|Nicholas Ballard 编译|VK 来源|Towards Data Science 可以说,每一个"使用计算机的人"都需要在某个时间点调整图像的大小.MacOS的预 ...

  6. 5.9 使用新建调整图层命令调整图像 [原创Ps教程]

    原文:http://coolketang.com/staticPhotoshop/5a98d4aca22b9d0044369a68.html 1. 本节课程将为您演示,如何使用[调整图层]命令,来调整 ...

  7. 利用色光三原色调整图片颜色

    最近学习了android中的图片颜色的处理,现在来总结一下.android中存在三种方式来调整图片的颜色,来达到不同的效果.分别是:利用色光三原色来调整图片颜色,利用颜色矩阵来调整图片颜色,利用调整每 ...

  8. python运行界面如何缩小_如何使用Python调整图像大小

    作者|Nicholas Ballard 编译|VK 来源|Towards Data Science 可以说,每一个"使用计算机的人"都需要在某个时间点调整图像的大小.MacOS的预 ...

  9. 图像处理(4) : 图像颜色

    与灰度图像相比,彩色图像包含更多的额外信息,利用图像的颜色信息可以简化很多机器视觉中的任务,这些可能是灰度图像无法做到的.还可以利用图像的颜色通道进行目标区域分析,通过图像的颜色空间的转换得到图像的属 ...

最新文章

  1. Failed to read artifact descriptor for xxx:jar:版本号
  2. 用indesign怎么更换名牌姓名_颚式破碎机如何拆卸?耐磨件怎么更换,可以用多久?答案都在这里...
  3. 共模电感适用的频率_【连载】手机常见电子元件介绍数据共模电感
  4. FFmpeg代码导读——基础篇
  5. 水晶报表中对某一栏位值进行处理_【节能学院】能耗管理系统在某超市嘉兴店二期工程的设计与应用...
  6. 一流程序员靠数学,二流程序员靠算法,低端看高端就是黑魔法
  7. Uva12325 Zombie's Treasure Chest [二分区间+模拟退火]
  8. 《Python Cookbook 3rd》笔记(4.8):跳过可迭代对象的开始部分
  9. Spring Cloud Zuul--服务网关
  10. (转载)C,C++,C#三者区别
  11. 干货 | 利用SPSS进行高级统计分析第二期
  12. 有哪些值得实力推荐的高评分经典电影,VIP视频解析网站推荐十部
  13. html的strong标签是什么意思,Strong标签和B标签怎么用?区别有哪些
  14. phpmyadmin 安装下载使用教程
  15. 基于SSM的商城管理系统
  16. 西门子免授权CNC数控系统数据采集c#、C、python都支持,可支持再各种操作系统上运行,无须西门子OPC,支持828D 840dsl 808 802dsl 840d 810d 西门子数控DNC程序
  17. 统计学计算机数据输入,数据输入是什么意思
  18. ppp协议提供什么服务器,PPP的工作原理是什么?单片机PPP协议有什么应用?
  19. 数据分析报告怎么写(四)
  20. C语言基础篇02:单链表实现学生成绩管理系统

热门文章

  1. 设计和生产3D打印的定制乳房假体
  2. 背水一战 Windows 10 (1) - C# 6.0 新特性
  3. window系统环境下使用adplus抓取dump方法
  4. 机器人索菲娜_当机器人索菲亚获得公民身份后会怎样
  5. 为什么需要WhatsApp聊天翻译,如何在SendWS的客服系统实现WhatsApp实时翻译群控功能?
  6. 【经典算法题】二叉树的最近公共祖先
  7. 人工智能技术在抽血机器人中的妙用
  8. PyQt教程一 HelloWorld
  9. cGAN:Conditional Generative Adversarial Nets
  10. 深入解析DOM树的加载