【问题标题】:How to change color scheme in corrplot如何更改 corrplot 中的配色方案
【发布时间】:2015-08-24 23:25:21
【问题描述】:

我在 R 中使用corrplot 来可视化相关系数矩阵,如下所示。

library(corrplot) 
library(datasets)
corrplot(abs(cor(mtcars)), method="color", tl.pos="n", cl.lim = c(0,1))

默认配色方案是基于蓝色的。但是,我想将其更改为基于 red。我知道我需要使用colorRampPalette 来指定我想要的颜色。但是,我无法弄清楚要使用什么颜色代码。有人可以帮我解决这个问题吗?

谢谢!

【问题讨论】:

  • 你试过Color Picker吗?
  • 在寻求绘图帮助时,最好在示例输入数据中包含reproducible example。另外,由于corrplot 似乎不是base R 中的函数,请明确指出您正在使用哪些包,
  • 我认为在这个页面的中间(部分:使用不同的色谱)有你要找的东西:cran.r-project.org/web/packages/corrplot/vignettes/…
  • @MrFlick 我做了一些更改。我认为您可以自己复制它。

标签: r colors r-corrplot


【解决方案1】:

函数 colorRampPalette 返回一个接受数字参数的函数:

corrplot(abs(cor(mtcars)), method="color",
         col= colorRampPalette(c("white","pink", "red"))(10) ,
         tl.pos="n", cl.lim = c(0,1))

默认是用这个色谱定义的:

col2 <- colorRampPalette(c("#67001F", "#B2182B", "#D6604D", "#F4A582", "#FDDBC7",
        "#FFFFFF", "#D1E5F0", "#92C5DE", "#4393C3", "#2166AC", "#053061"))  

这将为您提供更广泛的红色:

colnew <- colorRampPalette(c("#670000", "#B20000", "#D60000", "#F40000", "#FD0000", "#FFFFFF"))

而且我认为在末尾添加“棕色”可以扩大范围以实现更好的视觉分离:

col= colorRampPalette(c("white","lightpink", "red","brown"))(10)

【讨论】:

  • 谢谢。我想另一种方法是简单地颠倒默认 col2 中颜色代码的顺序。
  • 顺便问一下,白格线可以去掉吗?我试过'addgrid.col = NULL'。它没有用。
  • addgrid.col="transparent"
【解决方案2】:

如果您想使用红色,您可以定义自己的 colorRampPalette,正如您已经提到的。请注意,该图似乎将颜色范围设置为从 -1 到 1(即使您调整了 cl.lim 值)。因此,您仍然需要为渐变中的 -1 到 0 范围定义颜色。例如

corrplot(abs(cor(mtcars)), method="color", tl.pos="n", 
    cl.lim=c(0,1), col=colorRampPalette(c("blue","white","red"))(200))

会产生

即使我们在调色板中定义了“蓝色”,它也不会显示,因为我们将颜色条限制为大于 1 的值。

如果你拿出cl.lim,在原始版本中也可以看到这个“未使用”的颜色渐变部分。

corrplot(abs(cor(mtcars)), method="color", tl.pos="n")

【讨论】:

    猜你喜欢
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 2017-10-30
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多