R语言绘图之调色

R语言绘图颜色设置,绘制漂亮的图片。

在一个图中,数据的选择和图表类型的确定很重要,是最需要确定的因素。但是,适当的选择颜色不仅仅能使数据图的阅读者赏心悦目,而且有助于图中数据关系的呈现,使得整个图表更有说服力。今天我介绍R语言中的颜色和调色板。

R语言中的颜色

1 颜色名称表示法

R语言中的颜色表示方式主要有两种,一种是用颜色的名称表示,例如:blue、red、orange等等,要知道R语言中颜色名称可以使用colors()方法得到。下图只显示50个颜色值:

library(scales)
show_col(colors()[1:50],label=T)

attachments-2019-04-bwVg7MYO5cadbc3489f44.jpg

2 颜色值表示法

另一种颜色的表示方法是用数值的方法表示:也就是RGB的方法表示,通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的;  可以使用rgb()方法-设置三种颜色的值(0-1):例如 rgb(1, 0, 0)表示红色, 设置透明颜色时,再添加一个参数:rgb(1, 0, 0, 0.1)。也可以是0-255之间的数值:例如rgb()方法设置颜色(0-255): rgb(255, 0, 0, max=255) 也表示红色,  透明颜色:rgb(255, 0, 0, 0.1 ,max=255)。还有一种颜色写法是用16进制的字符表示:#FF0000表示红色,没两位依次表示RGB的值;

attachments-2019-04-9vQYuCf55cadbc3fb696a.jpg

3 数字表示法

可以用数字1、2、3等表示颜色,这些数字指向R语言中的色板palette颜色,如1代表当前palette的第1种颜色,2代表当前palette的第2种颜色等,默认色板中的颜色如下:

>palette()
[1"black"   "red"     "green3"  "blue"    "cyan"    "magenta" "yellow" 
[8"gray"   

4 颜色的应用

为柱状图填充颜色,4种颜色都表示红色,分别填充到柱状图的4个柱子中:

barplot(1:4, col = c(2"red"rgb(100), "#FF0000"))

attachments-2019-04-SKjRzbS35cadbc4baf0cf.jpg

色彩搭配

颜色很多,但是要搭配好一组颜色没有点艺术细胞还真挺为难的,还好R里面有个包RColorBrewer已经帮我们搭配好了色板,供我们使用:

  1. 连续型 sequential, 颜色渐变。

> display.brewer.all(type="seq")
> brewer.pal(9,"Blues"#取出颜色
[1"#F7FBFF" "#DEEBF7" "#C6DBEF" "#9ECAE1" "#6BAED6" "#4292C6" "#2171B5"
[8"#08519C" "#08306B"

attachments-2019-04-LrCZxWvJ5cadbc55d6ffe.jpg

  1. 极端型Diverging,生成深色强调两端、浅色表示中部的颜色,可用来标注数据中的离群点。

> display.brewer.all(type="div")
> brewer.pal(11,"RdGy")
 [1"#67001F" "#B2182B" "#D6604D" "#F4A582" "#FDDBC7" "#FFFFFF" "#E0E0E0"
 [8"#BABABA" "#878787" "#4D4D4D" "#1A1A1A"

attachments-2019-04-vonaOe375cadbc5fd2500.jpg

  1. 分类型Qualitative,生成彼此差异明显的颜色,通常用来标记分类数据。

> display.brewer.all(type="qual")
> brewer.pal(8,'Set3')  #取出颜色
[1"#8DD3C7" "#FFFFB3" "#BEBADA" "#FB8072" "#80B1D3" "#FDB462" "#B3DE69"
[8"#FCCDE5"

attachments-2019-04-4cWCjbiY5cadbc682c825.jpg

颜色绘图应用

分享一段绘图代码,绘制分组散点图:

#产生颜色向量,标记每一个点的颜色
palette(brewer.pal(8, "Set1"))
plot(iris$Petal.Length, iris$Petal.With, col = iris$Species
     ylab="Petal.With",xlab = "Petal.Length",pch=c(15,16,17)[iris$Species],
     main = "iris",cex=2)
legend("topleft",legend=levels(iris$Species),col=c(1,2,3),pch=c(15,16,17))

attachments-2019-04-aWo9EG4A5cadbc74dc863.jpg

想学R语言及绘图,可点击R语言画图R语言快速入门与提高

延伸阅读

R语言基础绘图|R聚类热图出众的进化树注释软件 | 再教你画Venn图 | R语言绘制聚类热图 | 画误差线 | WGCNA筛选biomarker | 3分2区蛋白质组学文章 | 基因家族分析 | ceRNA | NCBI中的基因组数据

更多生物信息课程:

1. 文章越来越难发?是你没发现新思路,基因家族分析发2-4分文章简单快速,学习链接:基因家族分析实操课程基因家族文献思路解读

2. 转录组数据理解不深入?图表看不懂?点击链接学习深入解读数据结果文件,学习链接:转录组(有参)结果解读转录组(无参)结果解读

3. 转录组数据深入挖掘技能-WGCNA,提升你的文章档次,学习链接:WGCNA-加权基因共表达网络分析

4. 转录组数据怎么挖掘?学习链接:转录组标准分析后的数据挖掘转录组文献解读

5. 微生物16S/ITS/18S分析原理及结果解读OTU网络图绘制cytoscape与网络图绘制课程

6. 生物信息入门到精通必修基础课:linux系统使用biolinux搭建生物信息分析环境linux命令处理生物大数据perl入门到精通perl语言高级R语言画图R语言快速入门与提高

7. 医学相关数据挖掘课程,不用做实验也能发文章:TCGA-差异基因分析GEO芯片数据挖掘 GEO芯片数据不同平台标准化 、GSEA富集分析课程TCGA临床数据生存分析TCGA-转录因子分析TCGA-ceRNA调控网络分析

8.其他,二代测序转录组数据自主分析NCBI数据上传二代fastq测序数据解读

9.更多课程可点击:组学大讲堂视频课程


  • 发表于 2019-04-10 17:51
  • 阅读 ( 15806 )
  • 分类:R

0 条评论

请先 登录 后评论
omicsgene
omicsgene

生物信息

702 篇文章

作家榜 »

  1. omicsgene 702 文章
  2. 安生水 351 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. xun 82 文章
  6. rzx 78 文章
  7. 红橙子 78 文章
  8. CORNERSTONE 72 文章