在 R 中,我可以轻松生成颜色渐变,例如 colorRampPalette。以下产生从蓝色到红色的五种颜色序列:
> mypal <- colorRampPalette( c( "blue", "red" ) )( 5 )
> mypal
[1] "#0000FF" "#3F00BF" "#7F007F" "#BF003F" "#FF0000"
如何在此调色板上轻松映射数字向量?比如说,我有一个 0 到 10 之间的数字向量,如下所示:
x <- c( 1, 9, 8.5, 3, 3.4, 6.2 )
我想要一个函数,比如说map2color
,当我运行时map2color( mypal, x )
,我得到
#0000FF, #FF0000, #FF0000, #3F00BF, #3F00BF, #BF003F
我通常会执行以下操作
mypalette[ findInterval( x, seq( 0, 10, length.out= 6 ), rightmost.closed= T ) ]
但也许有更好的解决方案OOB,自动为数字向量生成色标。