首页 文章

R - 更改corrplot的轴标签大小

提问于
浏览
10

我使用以下 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文件here创建的 .

图表很好,我可以调整我想要的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回写here

使用此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))

使用可用的相关圈的早期版本here,可以将文本调整为一个人的心愿 . (虽然该图缺少后来更精确的corrplot包的一些功能 . )cex可用于cex . 我可以尝试调整这两个,以便在时间允许的情况下提出一个快乐的媒介 .

使用较旧的相关圆圈脚本,以下代码生成足够大的X和Y轴标签:

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

3 回答

  • 11

    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

    corrplot with tl.cex = 1

    随着 tl.cex = 2

    corrplot with 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

    将它与您系统上的那个进行比较并尝试上面的示例,以便我们运行完全相同的代码进行比较 .


    Original Example 这是一个可重复的例子:

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

    Update

    好的,我现在看到了问题 . 使用 tl.offset ,可以将标签从相关图形中进一步推出边距 . 这似乎是 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() 说),那么您需要在创建设备时更改设备的尺寸 .


    Original [可重现的例子]给出了:

    mtcars correlation plot

    您不清楚x轴和y轴标签有什么问题,但 corrplot() 会改变绘图边距以容纳标签 . 您已通过设置参数 tl.cex = 2 已声明了这些x和y轴标签的相对大小 . 如果您希望标签更大,请增加此值:

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

    mtcars correlation plot 2

    如果您想要较小的标签,请将 tl.cex 设置为较小的值:

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

    mtcars correlation plot 3

    鉴于这些是图中唯一的x and y标签,这有帮助吗?如果没有, which 标签需要改变?

  • 2

    您可以尝试使用par更改文本的磅值 . 我认为默认大小是12 .
    corrplot 之前添加类似 par( ps=14) 的行应该使文本更大 .

  • 2

    根据您添加的示例,您可能必须增加绘图的尺寸并设置外边距以适应标签的长度 .

    可以使用 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)
    

    enter image description here


相关问题