如何在 corrplot 中更改配色方案

How to change color scheme in corrplot

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

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

默认配色方案基于蓝色。不过,我想改成red为主。我知道我需要使用 colorRampPalette 来指定我想要的颜色。但是,我不知道要使用什么颜色代码。有人可以帮我解决这个问题吗?

谢谢!

如果您想使用红色,您可以定义自己的 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))

会产生

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

这"unused"部分颜色渐变如果去掉cl.lim

也能看到原版的
corrplot(abs(cor(mtcars)), method="color", tl.pos="n")

函数 colorRampPalette returns 一个接受数字参数的函数:

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"))

而且我认为在末尾添加一个 "brown" 可以扩展范围以获得更好的视觉分离:

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