02.07.2013 Views

现代统计图形 - 科学网—博客

现代统计图形 - 科学网—博客

现代统计图形 - 科学网—博客

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4.1 颜色 37<br />

正,是因为有些搭配生成的RGB颜色(r, g, b)可能出现某一个元素超<br />

过1的情形<br />

gray(), grey() 生成灰色系列;只有一个参数level,表示灰度水平,取值<br />

在0到1之间,其中0表示纯黑色,而1表示纯白色;level取一个向量则<br />

可以生成一系列灰色值,如下例:<br />

1 > gray(seq(0, 1, length = 5))<br />

[1] "#000000" "#404040" "#808080" "#BFBFBF" "#FFFFFF"<br />

熟悉十六进制的人应该能看出这些颜色都是由六个十六进制数字组成<br />

的,每两位数字(合起来取值从0到255)分别表示红绿蓝(RGB颜色)<br />

的比例,我们知道,当三原色完全混合时,生成的颜色是白色,上面<br />

结果的最后一个’#FFFFFF’正是纯白色。<br />

除了颜色生成函数之外,grDevices包还提供了两种颜色转换函数,作用就<br />

是把一种颜色从一种颜色系统空间转移到另一种颜色系统空间中表示。这<br />

两个函数分别是:<br />

rgb2hsv() 将RGB颜色转换为HSV颜色,用法rgb2hsv(r, g = NULL, b =<br />

NULL, gamma = 1, maxColorValue = 255);所有参数意思已经在上<br />

面的列表中解释过,只是要注意,当r是一个矩阵时,另外两个参数g<br />

和b就应省略不写。 下例中我们将一个3 × 4的RGB颜色矩阵传入函<br />

数rgb2hsv(),该函数会把每一列RGB颜色都转化为相应的HSV颜色。<br />

颜色矩阵的前三列分别是红、绿和蓝色,请观察和对比两种颜色系统<br />

的表示方法。<br />

1 > # 赋值给变量 rgb.mat<br />

2 > (rgb.mat = matrix(c(255, 0, 0, 0, 255, 0, 0, 0, 255,<br />

3 + 10, 100, 200), nrow = 3))<br />

[,1] [,2] [,3] [,4]<br />

[1,] 255 0 0 10<br />

[2,] 0 255 0 100<br />

[3,] 0 0 255 200<br />

1 > rgb2hsv(rgb.mat)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!