2016-01-06 71 views
1

我試圖做一個corrPlot有一列像這樣顏色圖例1列

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

一列,但是當我做到這一點的顏色圖例,沒有寬度這樣做corrPlot時具有0寬度: 1columnCorrPlot

您可以在右側看到圖例的標籤,但圖例的彩條僅僅是corrplot右邊的一條線。

我嘗試使用cl.ratio =來調整,但我沒有影響,當只有1列(它有確實有多列時)。

有沒有人知道一種方法來完成這個?

感謝,

格倫

回答

1

看着爲corrplot您可以通過使用fix(corrplot)做的代碼,你會發現cl.ratio總是由一個變量mm乘以定義xlim例如

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

這導致mm=0在1列的情況下:xlim <- c(m1 - 0.5 - xlabwidth, m2 + 0.5 + mm * cl.ratio * (cl.pos == "r"))mm和通過計算。您可以通過將corrplot功能保存到另一個文件(例如mycorrplot.r)並將其命名爲mycorrplot()來驗證此功能。添加這些三線以下mm <- m2 - m1

cat("Before:",mm,"\n") 
mm <- 1 
cat("After:",mm,"\n") 

從本質上講,改變mm=0mm=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

感謝您的解釋。我已經讓維護者知道github。現在我只會添加我自己的顏色圖例。 – Gamund