使用1列corrPlot时,Color Legend的宽度为0

时间:2016-01-06 17:00:12

标签: r plot r-corrplot

我正在尝试使用一列包含一列这样的corrPlot

library(corrplot)
mc <- cor(mtcars,mtcars["mpg"])
corrplot(mc, method = "circle")

但是当我这样做时,颜色图例没有这样的宽度: 1columnCorrPlot

您可以在右侧看到图例的标签,但图例的颜色栏只是在corrplot右边框上的一条线。

我尝试使用cl.ratio =进行调整,但是当只有一列时我没有效果(当有多列时确实有效)。

有没有人知道实现这个目标的方法?

谢谢,

格伦

2 个答案:

答案 0 :(得分:1)

查看使用fix(corrplot)可以执行的corrplot代码,您会注意到cl.ratio始终乘以变量mm来定义xlim,例如xlim <- c(m1 - 0.5 - xlabwidth, m2 + 0.5 + mm * cl.ratio * (cl.pos == "r"))mm的计算方法是:

m2 <- max(Pos[, 1])
m1 <- min(Pos[, 1])
mm <- m2 - m1

在1列情况下导致mm=0。您可以将corrplot函数保存到另一个文件(例如mycorrplot.r)并将函数命名为mycorrplot()来验证这一点。在mm <- m2 - m1

之后添加这3行
cat("Before:",mm,"\n")
mm <- 1
cat("After:",mm,"\n")

基本上,将mm=0更改为mm=1。完成后,执行:

source("mycorrplot.r")
mycorrplot(mc, method = "circle", cl.ratio=1)

这将允许cl.ratio修改图例的宽度。 enter image description here

这只是一个黑客,你应该让corrplot维护者知道这个问题。 [https://github.com/taiyun/corrplot]

另一种选择是绘制自己的颜色图例:请参阅how to place colorlegend (corrplot) in graphic

答案 1 :(得分:0)

您好,感谢错误报告。 我刚刚在Github的问题跟踪器中关闭了这个问题: https://github.com/taiyun/corrplot/issues/19