R corrplot-颜色取决于价值

时间:2018-10-03 10:17:40

标签: r plot r-corrplot

我有一个二进制data.fram e(53115行; 520列),我想绘制一个相关图。我想根据相关值> = 0.95(红色)为它着色,否则为蓝色。

correl <- abs(round(cor(bin_mat), 2))

pdf("corrplot.pdf", width = 200, height = 200)
a <- corrplot(correl, order = "hclust", addCoef.col = "black", number.cex=0.8, cl.lim = c(0,1), col=c(rep("deepskyblue",19) ,"red"))
dev.off()

我得到了相关图,但是在许多情况下,我得到了错误的颜色(请参见下面的0.91)。

picture

数据:file

我如何设法进行正确的着色?

1 个答案:

答案 0 :(得分:1)

通常,corrplot库在cl.lim和颜色方面很奇怪。由于某些原因,是否设置cl.lim似乎无关紧要-颜色仍然会从-1分配到1。

因此,在您的情况下,只需使用39种蓝色而不是19种(覆盖-1到1的范围)即可:

cors <- cor(iris[,-5])
cors[cbind(c(1,2), c(2,1))] <- 0.912
corrplot(cors, col=c(rep("blue", 39), "red"), cl.lim=c(-1,1), addCoef.col="black")

结果: corrplot