今天学习如何获得颜色编号
回到昨天的问题:又不是女生买口红,哪个号对应着哪个颜色都知道。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_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)
参数解释:
-
border = F
去掉柱体上的边框 -
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)
网友评论