以下标度对边界色(colour)图形属性和填充色(fill)图形属性均有效。
连续型:
根据颜色梯度色彩数量划分,共有三类连续型颜色梯度(即渐变色):
- 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 应在数据范围内取值。
颜色梯度常被用来展示一个二维表面的高度,用以描述第三维度,颜色的深浅代表着不同的值,例如描述地势高低时,地势的高低常常用颜色深浅来展现。以下将使用R自带的一个向量数据集volcano,经过以下转换成数据框(ggplot2 只接受数据框类型)
第一个使用默认参数;第二图使用了参数 limits=c(120,170),用于控制填充颜色的值范围,所以小于 120 与大于 170 的值都没有颜色(即都是灰色);最后一个图中使用了参数 low 与 high,控制颜色在 low 与 high 之间渐变。
以上两图都设定了颜色由 blue 到 red 渐变,但是左图使用默认参数 midpoint=0,右图使用参数midpoint=150,而 z 值的范围是 94~195,所有他们在图中实际渐变色为,左图:浅红-红,右图:蓝-白-红 。
离散型:
离散型数据有两种颜色标度。一种可以自动选择颜色,另一种可以轻松地手工从颜色集中选择颜色。
默认的配色方案,即scale_colour_hue()、cale_fill_hue(),可通过沿着hcl 色轮选取均匀分布的色相来生成颜色。这种方案对颜色较少时有比较好的效果,但对于更多不同的颜色就不好区分开来。里面的各个参数就不多说了,具体查看帮助。
另一种可选的方案是ColorBrewer 配色,http://colorbrewer.org。使用的是scale_colour_ brewer ()、scale_fill_ brewer ()。要想了解所有的调色板,可以使用RColorBrewer::display.brewer.all()查看。以下是调色板:
使用时,用参数palette=”调色板名称或者数字”。例如,使用第二个调色板时用palette = 2(等价于palette = 'YIOrBr')。以下以画箱线图为例。
左上图使用默认配色方案 cale_fill_hue();后三种都是使用第二种配色方案,分别使用的调色板是:默认调色板、YIOrBr 调色板、Spectral 调色板。