我经常使用一个发散的调色板映射到一个参数,该参数在中间附近有一个有趣的转折点。
不幸的是,可用的调色板不同——例如来自 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, 0.5, 0.4, 1)
编辑:澄清一下,我熟悉colorRampPalette
和scale_colour_gradientn
,我寻求建议
1-为此目的选择好的颜色;
2- 定义将手工制作的调色板映射到变量的色标,类似于 scale_colour_gradient2
使用 mid
参数所做的事情(中心颜色可能不在参数范围的精确中心)
最佳答案
您可能喜欢使用 choose_palette()
,它是优秀的 colorspace 包中相对较新的补充。
该包中的函数使您可以对色彩空间的色调、色度和亮度特性进行完整且很大程度上正交的控制。 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, 0.25, 0.5, 0.4, 1)
包及其背后的想法都在包 vignette (vignette("hcl-colors")
) 和配套文章 "Escaping RGBland: Selecting colors for statistical graphics" (Warning: pdf) 中得到了很好的记录。发表在《计算统计与数据分析》杂志上。
关于r - 倒置发散调色板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23834653/