NGSR语言可视化基因组数据绘图

给R中的图上一个你喜欢的颜色吧

2019-04-26  本文已影响29人  黄晶_id

今天学习如何获得颜色编号

回到昨天的问题:又不是女生买口红,哪个号对应着哪个颜色都知道。R里我是怎么知道蓝色对应的色号是"#1B2CC1";灰色对应的色号是"#BCBABE"的?
答:其实是有一个网站的,该网站里提供了很多配色方案,也记录了什么颜色对应着什么颜色编号。

获取颜色编号

那跟我一起去网页看看吧:https://coolors.co/browser/latest/1
点开网页你可以看到这样一个页面:


鼠标放在任意颜色条上会出现几个选线,选一个你喜欢的颜色条点view后:
颜色编号
这样我们就获得了颜色编号,是不是很方便~
为了证实在R里这些编号确实对应着这些颜色,我们随便画个图上个颜色试试,顺便复习下之前的代码~

创建一个data.frame,用于后续画图操作。

gene_id = c(1:100)
gene_fpkm = abs(rnorm(100,10,5))  # fpkm基因表达量
sample_id = round(runif(100,1,10)) # 从1-10中随机取100个呈均匀分布的数,再用函数round()把这些数变成整数。
#用创建好的函数做一个数据框
gene_table = data.frame(gene_id,
                        gene_fpkm,
                        sample_id)

此时我们就创建好了,数据框,如图

数据框gene_table
我们画一个直方图看下基因表达量gene_fpkm的分布情况(distribution):
hist(gene_table$gene_fpkm)  #提取数据框中基因表达量那一列
基因表达量的分布
给它加上点颜色吧~在上面hist()函数里加上col参数即可,为了验证网站上的色号是对的,我们就加上面截图上的颜色编号吧,最左边的浅绿色编号是"#DDFFF7"
hist(gene_table$gene_fpkm,col = "#DDFFF7")  #柱体加上颜色编号 "#DDFFF7"
加色后

发现 "#DDFFF7"色号确实对应着浅绿色。大家试试其他色号的效果吧~
如果不放心,我们再验证一下:
在图上加一条基因表达量平均值的线

mean(gene_table$gene_fpkm) #求基因fpkm的平均数
abline(v = mean(gene_table$gene_fpkm)) #把平均值这条线竖直的加到图上
加上平均值的线

这条线好丑,我们对它进行处理:加上颜色、加粗、变虚线
颜色还是从上面截图上选,最右边的红色吧"#A30B37"

hist(gene_table$gene_fpkm,col = "#DDFFF7",border = F)  #柱体加上颜色去掉边框
abline(v = mean(gene_table$gene_fpkm),col="#A30B37",lwd=3,lty=3)  #平均值线加上颜色,加粗(lwd),变成虚线(lty)

参数解释:

理解颜色参数col=rgb(0,0,1,0.1)

有的时候,在看别人的代码时会发现颜色参数不是我们上面介绍的那样,而是这样式儿的:col=rgb(0,0,1,0.1)
我们解释一下:
*col=rgb(0,0,1,0.7)里,r是红色;g是绿色;b是蓝色。所以(0,0,1,0.7)代表,没有红色、没有绿色、全是蓝色,透明度是0.7
同理想要红色的这样写:col=rgb(1,0,0,1) 透明度选了1,也就是不透明。
那我们把上面的平均值线的颜色,改成蓝色即:col=rgb(0,0,1,1)

abline(v = mean(gene_table$gene_fpkm),col=rgb(0,0,1,1),lwd=3,lty=3)
col=rgb(0,0,1,1)

确实是变成蓝色啦~~~


课程分享
生信技能树全球公益巡讲
https://mp.weixin.qq.com/s/E9ykuIbc-2Ja9HOY0bn_6g
B站公益74小时生信工程师教学视频合辑
https://mp.weixin.qq.com/s/IyFK7l_WBAiUgqQi8O7Hxw
招学徒:
https://mp.weixin.qq.com/s/KgbilzXnFjbKKunuw7NVfw

上一篇下一篇

猜你喜欢

热点阅读