r - 倒置发散调色板

标签 r ggplot2 color-palette colorbrewer

我经常使用一个发散的调色板映射到一个参数,该参数在中间附近有一个有趣的转折点。

不幸的是,可用的调色板不同——例如来自 C. Brewer 的作品——似乎都在两个极端而不是中间具有饱和的颜色,通常被定义为白色或浅灰色。这是一个说明示例

enter image description here

文本标签指示的连续参数经过最佳值,其中相关曲线的峰值达到最大值。

在浅白色或灰色背景(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)

enter image description here

编辑:澄清一下,我熟悉colorRampPalettescale_colour_gradientn,我寻求建议

1-为此目的选择好的颜色;

2- 定义将手工制作的调色板映射到变量的色标,类似于 scale_colour_gradient2 使用 mid 参数所做的事情(中心颜色可能不在参数范围的精确中心)

最佳答案

您可能喜欢使用 choose_palette(),它是优秀的 colorspace 包中相对较新的补充。

该包中的函数使您可以对色彩空间的色调、色度和亮度特性进行完整且很大程度上正交的控制。 choose_palette() 为您提供了一种便捷的方式来探索所打开的巨大可能性空间。

下面是启动调色板选择器的代码,后面是 GUI 工具的屏幕截图。 (请注意,要使范围的中间比两端更暗,您需要交换发散调色板的默认亮度值,此处表示为“L1”和“L2”。)

library(colorspace)
library(grid)

custom <- choose_palette()

enter image description here

这是一个例子,我在使用它后大约一分钟内就得到了两个

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)

enter image description here

包及其背后的想法都在包 vignette (vignette("hcl-colors")) 和配套文章 "Escaping RGBland: Selecting colors for statistical graphics" (Warning: pdf) 中得到了很好的记录。发表在《计算统​​计与数据分析》杂志上。

关于r - 倒置发散调色板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23834653/

相关文章:

linux - X 服务器 8 位伪彩色启动调色板 (linux xdoom)

r - 解决R中具有复杂约束的二次优化问题

r - R中使用ggplot函数的热图-如何对行进行聚类?

r - 如何在保留变量名称的同时将构面标签包装在 ggplot 中?

r - 为 ggplot2 方面添加颜色条

r - 截断 ggplot 中的最高条

visual-c++ - CMFCColorButton::SetPalette

python - 将 seaborn.palplot 轴添加到现有图形中以可视化不同的调色板

r - 找出R表中的列是否包含重复值?

r - 获取数据表中每一行的最后 1 个索引 (R)