在一个图中,数据的选择和图表类型的确定很重要,是最需要确定的因素。但是,适当的选择颜色不仅仅能使数据图的阅读者赏心悦目,而且有助于图中数据关系的呈现,使得整个图表更有说服力。今天我介绍R语言中的颜色和调色板。
R语言中的颜色表示方式主要有两种,一种是用颜色的名称表示,例如:blue、red、orange等等,要知道R语言中颜色名称可以使用colors()方法得到。下图只显示50个颜色值:
library(scales)
show_col(colors()[1:50],label=T)
另一种颜色的表示方法是用数值的方法表示:也就是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的值;
可以用数字1、2、3等表示颜色,这些数字指向R语言中的色板palette颜色,如1代表当前palette的第1种颜色,2代表当前palette的第2种颜色等,默认色板中的颜色如下:
>palette()
[1] "black" "red" "green3" "blue" "cyan" "magenta" "yellow"
[8] "gray"
为柱状图填充颜色,4种颜色都表示红色,分别填充到柱状图的4个柱子中:
barplot(1:4, col = c(2, "red", rgb(1, 0, 0), "#FF0000"))
颜色很多,但是要搭配好一组颜色没有点艺术细胞还真挺为难的,还好R里面有个包RColorBrewer已经帮我们搭配好了色板,供我们使用:
连续型 sequential, 颜色渐变。
> display.brewer.all(type="seq")
> brewer.pal(9,"Blues") #取出颜色
[1] "#F7FBFF" "#DEEBF7" "#C6DBEF" "#9ECAE1" "#6BAED6" "#4292C6" "#2171B5"
[8] "#08519C" "#08306B"
极端型Diverging,生成深色强调两端、浅色表示中部的颜色,可用来标注数据中的离群点。
> display.brewer.all(type="div")#
> brewer.pal(11,"RdGy")
[1] "#67001F" "#B2182B" "#D6604D" "#F4A582" "#FDDBC7" "#FFFFFF" "#E0E0E0"
[8] "#BABABA" "#878787" "#4D4D4D" "#1A1A1A"
分类型Qualitative,生成彼此差异明显的颜色,通常用来标记分类数据。
> display.brewer.all(type="qual")
> brewer.pal(8,'Set3') #取出颜色
[1] "#8DD3C7" "#FFFFB3" "#BEBADA" "#FB8072" "#80B1D3" "#FDB462" "#B3DE69"
[8] "#FCCDE5"
分享一段绘图代码,绘制分组散点图:
#产生颜色向量,标记每一个点的颜色
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))
想学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测序数据解读、
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!