我经常使用一个发散的调色板映射到一个参数,该参数在中间附近有一个有趣的转折点.
不幸的是,可用的分散调色板 – 例如来自C. Brewer的那些 – 似乎在两个极端而不是在中间都有饱和的颜色,通常被定义为白色或浅灰色.这是一个例子
由文本标签指示的连续参数通过最佳值,其中相关曲线的峰值达到最大值.
在浅白色或灰色背景上(典型的ggplot2),我数据中最有趣的部分变得几乎看不见;我希望它能够“弹出”更多,而任何一方的价值逐渐远离中心逐渐消失,具有不同的色调.
是否有任何好的发散调色板的来源,中间的饱和度更强,两侧都会褪色?
下面是一个示例代码示例,将黑色选为中性点(我更喜欢不那么引人注目的东西,但很难让它与双方融合得很好).
require(RColorBrewer) grid.newpage() grid.raster(brewer.pal(7,"PRGn"),0.25,0.5,0.4,1) custom <- c(brewer.pal(3,"BuPu"),"black",rev(brewer.pal(3,"BuGn"))) grid.raster(custom,0.75,1)
编辑:澄清一下,我熟悉colorRampPalette和scale_colour_gradientn,我在寻求建议
1-为此目的选择好的颜色;
2-定义将手工制作的调色板映射到变量的色标,类似于scale_colour_gradient2对mid参数的作用(中心颜色可能不在参数范围的正中心)
您可能喜欢玩choose_palette(),这是一个相对较新的优秀色彩空间包.
该软件包中的功能为您提供了对色彩空间的色调,色度和亮度特性的完全且基本上正交的控制. choose_palette()为您提供了一种探索可能性的巨大空间的便捷方式.
这是启动调色板选择器的代码,后面是GUI工具的屏幕截图. (注意,要使范围的中间比末端更暗,您需要交换发散调色板的默认亮度值,此处表示为“L1”和“L2”.)
library(colorspace) library(grid) custom <- choose_palette()
这里有一个例子,说明它在大约一分钟的时间内让它变成了两个
custom <- diverge_hcl(20,h=c(-225,277),c=80,l=c(80,25)) grid.newpage() grid.raster(custom,1)
包装及其背后的思想都很好地记录在包装插图(晕影(“hcl-colors”))和发表在计算统计和数据分析期刊中的配套文章“Escaping RGBland: Selecting colors for statistical graphics” (Warning: pdf)中.