如何在corrplot中更改颜色方案

LaT*_*Fan 5 r colors r-corrplot

corrplot在R中使用如下可视化相关系数矩阵.

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

在此输入图像描述

默认颜色方案是基于蓝色的.但是,我想把它改成红色的.我知道我需要用来colorRampPalette指定我想要的颜色.但是,我无法弄清楚要使用的颜色代码.有人可以帮帮我吗?

谢谢!

MrF*_*ick 10

如果你想使用红色,你可以像你提到的那样定义你自己的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))
Run Code Online (Sandbox Code Playgroud)

会产生

在此输入图像描述

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

如果你拿出原来的版本,也可以看到颜色渐变驾驶室的"未使用"部分 cl.lim

corrplot(abs(cor(mtcars)), method="color", tl.pos="n")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


42-*_*42- 6

函数 colorRampPalette 返回一个采用数字参数的函数:

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

在此输入图像描述

默认值是使用以下色谱定义的:

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

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

colnew <- colorRampPalette(c("#670000", "#B20000", "#D60000", "#F40000", "#FD0000", "#FFFFFF"))
Run Code Online (Sandbox Code Playgroud)

我认为在末尾添加“棕色”可以扩大范围,以获得更好的视觉分离:

col= colorRampPalette(c("white","lightpink", "red","brown"))(10)
Run Code Online (Sandbox Code Playgroud)

  • 谢谢。我想另一种方法是简单地反转默认 col2 中颜色代码的顺序。 (2认同)
  • `addgrid.col="透明"` (2认同)