1 颜色名称表示法
R语言中的颜色表示方式主要有两种,一种是用颜色的名称表示,例如:blue、red、orange等等,要知道R语言中颜色名称可以使用colors()方法得到。下图只显示50个颜色值:
library(scales)
show_col(colors()[1:50],label=T)
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的值;
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个柱子中:
一、R预设调色板这一系列函数有5个,即:
rainbow
heat.colors
terrain.colors
topo.colors
cm.colors
在R环境里面输入问号(?)和上面任一函数名就可以获得这5个函数的用法说明。这些函数最少需要一个参数,n,表示要得到颜色的数量。n在系统允许范围内没有限制。下面用彩虹色调色板函数rainbow产生的颜色绘一个色盘:
>setwd("D:/")n=1000
>png("rainbow.disc.png", bg = "transparent")
>par(mar = c(0,0,0,0))
>pie(rep(1,times=n),labels="",col=rainbow(n),border=rainbow(n))
>dev.off()运行后回在D盘根目录下得到一个rainbow.disc.png文件,图形如下:
五个调色板产生的颜色对比如下:
>par(mfrow=c(5,1))par(mar=c(0.1,0.1,2,0.1))par(xaxs="i", yaxs="i")
>n <- 10000
>barplot(rep(1,times=n),col=rainbow(n),border=rainbow(n),axes=FALSE, main="Rainbow colors")box()
>barplot(rep(1,times=n),col=heat.colors(n),border=heat.colors(n),axes=FALSE, main="heat.colors")box()
>barplot(rep(1,times=n),col=terrain.colors(n),border=terrain.colors(n),axes=FALSE,main="terrain.colors")box()
>barplot(rep(1,times=n),col=topo.colors(n),border=topo.colors(n),axes=FALSE, main="topo.colors")box()
>barplot(rep(1,times=n),col=cm.colors(n),border=cm.colors(n),axes=FALSE, main="cm.colors")box()
当然你可能不需要这么多颜色,改变n值就可以了:
>n <- 10
>barplot(rep(1,times=n),col=rainbow(n),border=rainbow(n),axes=FALSE, main="Rainbow colors")box()
>barplot(rep(1,times=n),col=heat.colors(n),border=heat.colors(n),axes=FALSE, main="heat.colors")box()
>barplot(rep(1,times=n),col=terrain.colors(n),border=terrain.colors(n),axes=FALSE,main="terrain.c
调色板有3种类型:连续型调色板、离散型调色板和定性调色板。
绘图应用[1]
Wes Anderson,电影导演韦斯·安德森,善于运用色彩。
最欣赏的一点是他以色调和对称构图来讲述惟妙惟肖的故事情节,而不是使用过多复杂花哨的拍摄方式诠释自己的才能。 [1]
绘图应用[2]
可以使用函数rainbow(n), heat.colors(n), terrain.colors(n), topo.colors(n)和cm.colors(n)生成n个连续颜色的向量
绘图应用[3]
绘图应用[4]
参考资料: