《ggplot2:数据分析与图形艺术》
第6章 标度、坐标轴和图例
6.4 标度详解
6.4.3 颜色标度
映射颜色的方法很多,对于连续型值有三种基于渐变的方法,对于离散型值有两种方法。
hcl色彩空间由三部分构成,分别是色相(hue)、彩度(chroma)、明度(luminance)。
- 色相(hue)是一个0和360之间的(角度)值,它将一种色彩赋以“颜色”属性:如蓝、红、橙等等。
- 明度(luminance)指颜色的明暗程度。明度的高低,要看其接近白色或黑色的程度而定。明度为0为黑,明度为1为白。
- 彩度(chroma)指色彩的纯度。彩度为0是灰色,彩度的最大值随明度的变化而不同。
所以绘图标准当中,最好避免使用红——绿比对,并且要使用可以模拟色盲情形的系统来检查你的图形。Visicheck就是一种在线解决方案。另外一种选择是使用dichromat包。
连续型
根据颜色梯度中的色彩数量划分,共有三类连续型颜色梯度(即渐变色):
- scale_colour_gradient()和scale_fill_gradient():双色梯度。顺序为从低到高。参数low和high用以控制此梯度两端的颜色。
- scale_colour_gradient2()和scale_fill_gradient2():三色梯度。顺序为低——中——高。参数low和high作用同上,这两种标度还在中点处拥有一个中间色。中点的默认值为0,但也可使用参数midpoint将其设置为任意值。这个参数对生成发散型配色方案特别有用。
- scale_colour_gradientn()和scale_fill_gradientn():自定义的n色梯度。此标度需要赋值给参数colours一个颜色向量。不加其他参数的时候,这些颜色将依照数据的范围均匀地分布。如,果你需要让这些值不均匀地分布,则可以使用参数values。如果rescale的取值为TRUE(默认值),则values应在0和1之间取值,如果rescale对取值为FALSE,则values应在数据范围内