2019-03-20浏览量:1837

如何选择合适的配色方案?R语言调色板了解一下!

R语言调色板

用R语言可视化数据时,不同的数据通常需要不同的配色方案。合适的颜色不但能够使得图片更加美观,也能更好地展示数据之间的关系。

看到赏心悦目的数据图,就好想知道怎么配颜色呢?

今天,小锐课堂就来简单介绍R语言中的色彩和调色板相关packae和函数。

一、预设调色板

在R中有5个预设的颜色主题和1个灰度调色板,分别是:

rainbow、heat.colors、terrain.colors、topo.colors、cm.colors、gray

ainbow():顾名思义,就是用彩虹的颜色来产生一系列颜色。

用法:rainbow(n, s = 1, v = 1, start = 0, end = max(1, n - 1)/n, alpha = 1)

参数:

n:设定产生颜色的数目;

s、v 为饱和度和纯度,取值于区间[0, 1];

alpha:用于设置颜色的透明度,取值于区间[0, 1];

start和end:用于设定彩虹颜色的一个子集,从这个子集中选取颜色。

 代码示例:

> mycol=rainbow(n=6, s = 1, v = 1, start = 1/6, end= 4/7, alpha = 0.6)

> barplot(1:6, col = mycol)

函数的参数start=1/6, end=4/7 指的是rainbow中选择1/6到4/7的颜色范围,通常rainbow颜色的大致分界为:红色为0,黄色为1/6,绿色为2/6,青色为3/6,蓝色为4/6,紫色为5/6。可以根据这个选择自己想要的颜色范围。

其他4个预设的颜色主题用法基本相同:name.colors(n,alpha = 1)

示例代码如下:

> par(mfrow=c(2,2))

> barplot(1:6, col = heat.colors(n=6, alpha = 1),main="heat.colors")

> barplot(1:6, col = terrain.colors(n=6, alpha = 1),main="terrain.colors")

> barplot(1:6, col = topo.colors(n=6, alpha = 1),main="topo.colors")

> barplot(1:6, col = cm.colors(n=6, alpha = 1),main="cm.colors")

灰度调色板gray()或grey():

用法:gray(level, alpha = NULL)

参数level,表示灰度水平,取值在0到1之间,其中0表示纯黑色,而1表示纯白色;

示例代码:

> mycol=gray(level=3:9/10,alpha=1)

> mycol

[1] "#4D4D4DFF" "#666666FF" "#808080FF" "#999999FF" "#B3B3B3FF" "#CCCCCCFF" "#E6E6E6FF"

[2] > barplot(1:7,col=mycol)

参数level=3:9/10中的3:9产生了7个向量,通过/10可以得到0.3 0.4 0.5 0.6 0.7 0.8 0.9这7个向量,对应均匀变化的七个灰度。

二、RColorBrewer包的调色板

如果对上面的R自带的调色板还不满意,那么还可以调用一些R包中的调色板。RColorBrewer包的brewer.pal函数提供了三种类型的调色板,可以通过display.brewer.all()查看所有的调色板及名称。

▶ 极端化调色板:生成用两端深中间浅的系列颜色,可用来标记数据中的离群点。

> display.brewer.all(type="div")#查看极端化调色板

 连续型调色板:生成一系列渐变的颜色,通常用来标记连续型数值的大小。

> display.brewer.all(type="seq")

离散型调色板:生成一系列差异比较明显的颜色,通常用来标记分类数据。

> display.brewer.all(type="qual")

brewer.pal函数的使用也非常简单

用法brewer.pal(n,name)

n:颜色的数目,最少3种,最多取决于调色板

name:调色板名称

示例代码:

> mycol<-brewer.pal(7,"Spectral")

> mycol

[1] "#D53E4F" "#FC8D59" "#FEE08B" "#FFFFBF" "#E6F598" "#99D594" "#3288BD"

> barplot(1:7,col=mycol)

也可以利用rev()函数对颜色进行反转,或者只获取该组颜色中的某几种颜色:

> mycol<-rev(brewer.pal(7,"Spectral"))

> barplot(1:7,col=mycol)

> mycol<-brewer.pal(7,"Spectral")

> barplot(1:7,col=mycol[1:4])

 

三、RColorBrewer包的调色板

如果想要自己设置渐变色可以用colorRampPalette()函数

用法:colorRamp(colors, bias = 1, alpha = FALSE)

colors:要插入的颜色。

bias:设置颜色宽度。值越高,高端颜色越宽。

代码示例:

> mycol = colorRampPalette(c("lightblue", "yellow", "red"),bias=1)(n=15)

> barplot(rep(1,15),col=mycol,border=NA,main="bias=1")

参数c("lightblue", "yellow", "red")代表从浅蓝色渐变黄色渐变到红色。n=15代表创建长度为15的颜色梯度。

通过改变bias的值,可以改变不同颜色的宽度。下面两张图展示了不同的bias值产生的不同颜色梯度。

参考书籍:《现代统计图形》谢益辉

一抹喜欢的色彩,R语言调色板帮你搞定!

更多生信精彩分享,就在锐翌生信培训班!

2019锐翌春季培训班开班啦!

(点击查看详情)
报名快捷通道(长按识别二维码)


下一篇

版权所有 上海锐翌生物科技有限公司 沪ICP备16022951号