<p>我觉得<a href="http://www.kennethmoreland.com/color-maps/" rel="noreferrer">Kenneth Moreland's proposal</a>很有用。
它是在<code>Rgnuplot</code>包中实现的(<code>install.packages("Rgnuplot")</code>已经足够了,您不需要安装GNU plot)。要像使用常用颜色贴图一样使用它,需要按如下方式转换:</p>
<pre><code>cool_warm <- function(n) {
colormap <- Rgnuplot:::GpdivergingColormap(seq(0,1,length.out=n),
rgb1 = colorspace::sRGB( 0.230, 0.299, 0.754),
rgb2 = colorspace::sRGB( 0.706, 0.016, 0.150),
outColorspace = "sRGB")
colormap[colormap>1] <- 1 # sometimes values are slightly larger than 1
colormap <- grDevices::rgb(colormap[,1], colormap[,2], colormap[,3])
colormap
}
img(red_blue_diverging_colormap(500), "Cool-warm, (Moreland 2009)")
</code></pre>
<p><a href="https://i.stack.imgur.com/cjDvH.png" rel="noreferrer"><img src="https://i.stack.imgur.com/cjDvH.png" alt="cool-warm colormap"/></a>
与插入的RColorBrewer“RdBu”相比,它的实际效果是这样的:<a href="https://i.stack.imgur.com/jIqYl.png" rel="noreferrer"><img src="https://i.stack.imgur.com/jIqYl.png" alt="comparison"/></a></p>