关于颜色的R包

在R 中,对于颜色,我们还可以通过颜色下标、十六进制的颜色值、RGB值及HSV值来设定。

如 col = 1, col = ‘white’, col = ‘#FFFFFF’, col = (1, 1, 1),col = hsv(0,0,1) 都是表示白色。

但在哪里可以取得这些关于颜色的名称或者信息呢?

我们可以通过几个函数来获得颜色的这些信息。

1)colors()

R 内建的函数。

  1. > head(colors())
  2. [1] "white" "aliceblue" "antiquewhite" "antiquewhite1"
  3. [5] "antiquewhite2" "antiquewhite3"

2)rainbow()

生成连续的“彩虹色”颜色,指定参数n 为颜色的数目。

  1. > rainbow(9)
  2. [1] "#FF0000FF" "#FFAA00FF" "#AAFF00FF" "#00FF00FF" "#00FFAAFF" "#00AAFFFF"
  3. [7] "#0000FFFF" "#AA00FFFF" "#FF00AAFF"

3)heat.colors() & terrain.colors() & topo.colors() & cm.colors()

类似rainbow。

  1. > heat.colors(3)
  2. [1] "#FF0000FF" "#FF8000FF" "#FFFF00FF"
  3. > topo.colors(3)
  4. [1] "#4C00FFFF" "#00FF4DFF" "#FFFF00FF"
  5. > cm.colors(3)
  6. [1] "#80FFFFFF" "#FFFFFFFF" "#FF80FFFF"

4)RColorBrewer()

我们需要下载一下这个包:

  1. install.packages('RColorBrewer')

使用包中的函数brewer.pal() 可以创建一个颜色值的向量,n 指定从颜色盘中取得的数目,name 指定颜色盘:

  1. > library(RColorBrewer)
  2. > mycolor = brewer.pal(7, 'Set1')
  3. > mycolor
  4. [1] "#E41A1C" "#377EB8" "#4DAF4A" "#984EA3" "#FF7F00" "#FFFF33" "#A65628"

可以看看这些颜色:

  1. > barplot(rep(1,7), col = mycolor)

012. 给你点颜色看看之R 的颜色 - 图1

我们还可以看看包中的所有颜色:

  1. library(RColorBrewer)
  2. display.brewer.all()

012. 给你点颜色看看之R 的颜色 - 图2

按照官方的介绍,RColorBrewer 上面这三类调色板各有应用:

  1. Sequential palettes (first list of colors): 适合单一方向变化的连续性变量,names are : Blues, BuGn, BuPu, GnBu, Greens, Greys, Oranges, OrRd, PuBu, PuBuGn, PuRd, Purples, RdPu, Reds, YlGn, YlGnBu YlOrBr, YlOrRd
  2. Qualitative palettes (second list of colors): 适合分类变量,names are : Accent, Dark2, Paired, Pastel1, Pastel2, Set1, Set2, Set3.
  3. Diverging palettes (third list of colors): 由中间向两侧变化的连续性变量,names are : BrBG, PiYG, PRGn, PuOr, RdBu, RdGy, RdYlBu, RdYlGn, Spectral



5)gray()

用于生成多阶灰色,如 gray(0:10 / 10) 可以生成十种十阶灰色,可以康康:

  1. > mygrays = gray(0:10 / 10)
  2. > barplot(rep(1,10), col = mygrays)

012. 给你点颜色看看之R 的颜色 - 图3

说明书没有看的很懂,但我推测该函数 gray(0:n / k)分成两个部分,一个是0:n,用于指定生成的灰度数目,而后面的k 来控制区分文件的黑度,k 越小,则灰度变化的越不明显,当k = n 时,最后面的生成的颜色会是白色。

而其表示颜色也是从0:1,0 表示黑,1表示白。