在绘热图时,需要将数值映射到不同的颜色上,这时就需要一系列的颜色梯度
colorRampPalette 函数支持自定义的创建一系列的颜色梯度
代码示例:
> colors <- colorRampPalette(c("blue", "red"))(5)> colors[1] "#0000FF" "#3F00BF" "#7F007F" "#BF003F" "#FF0000"
函数的参数c("blue", "red") 指的是颜色从蓝色渐变到红色,5 代表创建长度为5的颜色梯度
有了颜色梯度之后,我们就可以方便的把数值映射到颜色梯度上
基本的思想是,将数值排序,然后得到每个数值在排序好的序列中的顺序,其实就是rank 函数的返回值,然后利用该顺序去获取颜色
代码示例:
colors <- colorRampPalette(c("blue", "red"))(5)plot(5:1, bg = colors[rank(5:1)], cex = 2, pch = 22)
效果图如下:
从图中可以看出,数值1到5, 对应的颜色为蓝色渐变到红色