在R中使用固定的断点创建调色板

时间:2019-05-04 13:38:35

标签: r colors breakpoints correlation

尊敬的stackoverflow社区,

我有一个具有不同相关值的向量,我想将其链接到相应的颜色代码(例如-1 =“深红色”,0 =“浅灰色”,1 =“深绿色”)。因此,例如,如果我的相关性最大值为0.75,则相应的颜色值应为“较浅的绿色”。在R中有解决方案吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您要寻找的是ggplot2::scale_colour_gradient2()。由于您没有提供任何示例数据(我会在以后强烈建议您使用;它会鼓励回答并帮助应答者根据您的实际数据结构来定制答案),因此我制作了以下简单示例:

library(ggplot2)
set.seed(123)
n <- 1000
corrs <- seq(-0.9, 0.9, length.out = 10)
vals <- matrix(0, nrow = 0, ncol = 2)
for ( corr in corrs ) {
    tmp <- mvtnorm::rmvnorm(n/10, sigma = matrix(c(1, corr, corr, 1), nrow = 2))
    # print(cor(tmp)) # If you want to do QA
    vals <- rbind(vals, tmp)
}
df <- data.frame(var1 = vals[ , 1], var2 = vals[ , 2],
                 corr = rep(corrs, each = n/10))
ggplot(df, aes(x = var1, y = var2, colour = corr)) +
    geom_point(shape = 1) +
    scale_colour_gradient2(low = "darkred", mid = "gray", high = "darkgreen")

enter image description here