簡體   English   中英

R - 更改corrplot的軸標簽大小

[英]R - change size of axis labels for corrplot

我使用以下與corrplo t:

require("corrplot") ## needs the corrplot package
corrplot(cor(lpp_axis1, lpp_axis2), method=c("number"), bg = "grey10",
         addgrid.col = "gray50", tl.offset = 2, tl.cex=2,
         tl.col = "black", 
         col = colorRampPalette(c("yellow","green","navyblue"))(100))

這是使用此處提供的csv文件創建的。

圖表很好,我可以調整我想要的cl標簽。 我試過調整x和y軸上的標簽沒有任何影響。 我看着改變馬克 - 但我還沒找到辦法。 我嘗試使用cex.label來改變大小是不成功的。

問題 - 如何使文本出現在corrplot(不是cl,而不是在網格中)更大?

兩個軸是以下數據框:

lpp_axis1 <- data.frame("Compile Source Code" = Q3A.1, "View Source Code" = Q3A.2, "Change Source Code" = Q3A.3, "Write Documentation" = Q3A.8, "File Bug Reports"= Q3B.3, "Ask Questions" = Q3B.5, "Provide Answers" = Q3B.6, "Overall Participation" = Q3a3bConsolidated)

lpp_axis2 <- data.frame("Identification" = Q1,"Overall Learning" = Q6Consolidated,  "Learning Programming" = Q6.1,  "Learning about Computers" = Q6.2, "Learning Teamwork" =  Q6.3)

輸出來自

str(lpp_axis1)

> str(lpp_axis1)
'data.frame':   4603 obs. of  8 variables:
 $ Compile.Source.Code  : int  4 2 3 2 2 2 3 2 2 0 ...
 $ View.Source.Code     : int  4 2 1 1 2 2 3 1 1 0 ...
 $ Change.Source.Code   : int  4 1 0 1 2 1 2 1 1 0 ...
 $ Write.Documentation  : int  4 1 2 2 3 0 3 0 1 0 ...
 $ File.Bug.Reports     : int  4 4 1 2 2 0 2 0 0 0 ...
 $ Ask.Questions        : int  4 4 2 4 2 1 2 1 3 0 ...
 $ Provide.Answers      : int  2 4 1 4 4 0 3 1 3 0 ...
 $ Overall.Participation: int  49 26 14 32 31 8 27 10 15 0 ...

輸出來自

packageDescription("corrplot")

說明:

Package: corrplot
Type: Package
Title: visualization of a correlation matrix
Version: 0.30
Date: 2010-05-30
Author: Taiyun Wei
Suggests: seriation, cairoDevice, Cairo,
Maintainer: Taiyun Wei <weitaiyun@gmail.com>
Description: The corrplot package is a graphical display of a
        correlation matrix, confidence interval. It also contains some
        algorithms to do matrix reordering.
License: GPL-2 | GPL-3
LazyLoad: yes
URL: http://corrplot.r-forge.r-project.org
Repository: CRAN
Repository/R-Forge/Project: corrplot
Repository/R-Forge/Revision: 45
Date/Publication: 2010-05-31 07:44:14
Packaged: 2010-05-30 20:39:16 UTC; rforge
Built: R 2.11.1; ; 2011-03-19 00:22:49 UTC; unix

-- File: /home/user/R/x86_64-pc-linux-gnu-library/2.11/corrplot/Meta/package.rds 
> 

corrplot維護者用一個備用的corrplot.r回復了這里

使用此corrplot和下面的示例代碼,文本大小是可以接受的。 然而,增加它的嘗試也產生相同的效果。

source("http://misterdavis.org/R_info/corrplot.r")
corrplot(cor(lpp_axis1, lpp_axis2), addn=T,
         addgrid.col = "gray50", tl.cex=2, assign.col="min2max",
         tl.col = "black", cl.ratio=0.4, addcolor="no",
         col = colorRampPalette(c("yellow","green","blue"))(100))

使用此處可用的相關圈的早期版本,可以根據一個人的心願調整文本。 (雖然該圖缺少后來更精確的corrplot包的一些功能。)cex可用於cex。 我可以嘗試調整這兩個,以便在時間允許的情況下提出一個快樂的媒介。

使用較舊的相關圓圈腳本,以下代碼生成足夠大的X和Y軸標簽:

circle.corr(cor(lpp_axis1, lpp_axis2), bg = "gray50",   col = colorRampPalette(c("navyblue","white", "red"))(100), cex=1.5)

UPDATE2

實際上,由於提供了代碼和數據,現在是一個真正可重現的例子:

d1 <- read.csv(url("http://misterdavis.org/r_wiki/r_results_1231_2010"))
lpp_axis1 <- with(d1, data.frame("Compile Source Code" = Q3A.1,
                                 "View Source Code" = Q3A.2,
                                 "Change Source Code" = Q3A.3, 
                                 "Write Documentation" = Q3A.8, 
                                 "File Bug Reports"= Q3B.3,
                                 "Ask Questions" = Q3B.5,
                                 "Provide Answers" = Q3B.6,
                                 "Overall Participation" = Q3a3bConsolidated))

lpp_axis2 <- with(d1, data.frame("Identification" = Q1,
                                 "Overall Learning" = Q6Consolidated,  
                                 "Learning Programming" = Q6.1,
                                 "Learning about Computers" = Q6.2, 
                                 "Learning Teamwork" =  Q6.3))

corrplot(cor(lpp_axis1, lpp_axis2), method=c("number"), bg = "grey10",
         addgrid.col = "gray50", tl.cex=1,
         tl.col = "black", 
         col = colorRampPalette(c("yellow","green","navyblue"))(100))
dev.new()
corrplot(cor(lpp_axis1, lpp_axis2), method=c("number"), bg = "grey10",
         addgrid.col = "gray50", tl.cex=2,
         tl.col = "black", 
         col = colorRampPalette(c("yellow","green","navyblue"))(100))

dev.new()允許您同時在屏幕上進行比較,而不將繪圖區域分成兩個面板。

tl.offset似乎造成了比它值得多的問題,所以我把它排除在外。 我包括以下兩個數字:

tl.cex = 1

corllot,tl.cex = 1

tl.cex = 2

corllot與tl.cex = 2

如你所見,我無法重現你所看到的問題; tl.cex僅更改軸標簽大小。 請注意,這不使用tl.offset但其余的繪圖代碼與您的相同。

這是我從packageDescription()得到的:

R> packageDescription("corrplot")
Package: corrplot
Type: Package
Title: visualization of a correlation matrix
Version: 0.30
Date: 2010-05-30
Author: Taiyun Wei
Suggests: seriation, cairoDevice, Cairo,
Maintainer: Taiyun Wei <weitaiyun@gmail.com>
Description: The corrplot package is a graphical display of a
        correlation matrix, confidence interval. It also contains some
        algorithms to do matrix reordering.
License: GPL-2 | GPL-3
LazyLoad: yes
URL: http://corrplot.r-forge.r-project.org
Repository: CRAN
Repository/R-Forge/Project: corrplot
Repository/R-Forge/Revision: 45
Date/Publication: 2010-05-31 07:44:14
Packaged: 2010-05-30 20:39:16 UTC; rforge
Built: R 2.13.0; ; 2011-04-01 12:33:21 UTC; unix

- 文件:/home/gavin/R/libs/corrplot/Meta/package.rds

將它與您系統上的那個進行比較並嘗試上面的示例,以便我們運行完全相同的代碼進行比較。


原始示例以下是可重現的示例:

require(corrplot)
data(mtcars)
corr <- cor(mtcars)
corrplot(corr, method = "number", tl.cex = 2)

更新

好的,我現在看到了問題。 使用tl.offset ,您可以將標簽從相關圖形中進一步推出到邊距中。 這似乎是corrplot()中的corrplot()錯誤,就像你沒有設置tl.offset它會縮放相關圖形以容納標簽。 我能看到的唯一解決方案是根本不設置tl.offset ,或者將其設置為較小的值這是一個極端的例子:

layout(matrix(1:2, ncol = 2))
corrplot(corr, method = "number", tl.cex = 2, tl.offset = 3)
corrplot(corr, method = "number", tl.cex = 2)
layout(1)

corrplot 4

可以通過更改繪圖設備的相對尺寸改進 - 如果在屏幕上,增加繪圖設備窗口的寬度或高度(或兩者),直到所有標簽都可見。 如果這是另一個設備( pdf()png()說),那么您需要在創建設備時更改設備的尺寸。


原件 [可重現的例子]給出:

mtcars相關圖

您不清楚x和y軸標簽的問題,但corrplot()會更改繪圖邊距以容納標簽。 您已通過設置參數tl.cex = 2說明這些x和y軸標簽的相對大小。 如果您希望標簽更大,請增加此值:

corrplot(corr, method = "number", tl.cex = 4)

mtcars相關圖2

如果你想要更小的標簽,請將tl.cex設置為更小的值:

corrplot(corr, method = "number", tl.cex = 0.8)

mtcars相關圖3

鑒於這些是圖中唯一的x y標簽,這有幫助嗎? 如果沒有, 哪些標簽需要改變?

您可以嘗試使用par更改文本的磅值。 我認為默認大小是12。
corrplot之前添加像par( ps=14) corrplot應該使文本更大。

根據您添加的示例,您可能必須增加繪圖的尺寸並設置外邊距以適應標簽的長度。

可以使用par()$pin訪問當前繪圖尺寸,使用par()$omi訪問外邊距。

您可以通過調整以下示例來更改繪圖尺寸和外邊距:

require("corrplot")         ## needs the corrplot package  
data(mtcars)  
  corr <- cor(mtcars)    
par(pin=c(7,7))              ##  (width, height) in inches    
par(omi=c(0,1,1,0.5))        ## (bottom, left, top, right)  in inches  
corrplot(corr, method="number", tl.cex = 2)

在此輸入圖像描述


暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM