我将以下内容与
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 轴上的标签,但没有任何影响。我考虑过改变 mar - 但我还没有找到方法。我尝试使用 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 <[email protected]>
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))
使用此处可用的早期版本的相关圈,可以根据自己的喜好调整文本。 (尽管该图缺少后来更精致的 corrplot 包的一些功能。) cex 可以用于 cex。如果时间允许,我可能会尝试调整两者,以找到一个折中方案。
使用旧的相关圆脚本,以下代码可生成足够大的 X 和 Y 轴标签:
circle.corr(cor(lpp_axis1, lpp_axis2), bg = "gray50", col = colorRampPalette(c("navyblue","white", "red"))(100), cex=1.5)
更新2
实际上,由于提供了代码和数据,现在有了一个真正的可重现示例:
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
与
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 <[email protected]>
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()
中的一个错误,就好像您没有设置 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)
您可以通过更改绘图设备的相对尺寸来改进 - 如果在屏幕上,则增加绘图设备窗口的宽度或高度(或两者),直到所有标签都可见。如果这是另一个设备(比如
pdf()
或 png()
),那么您需要在创建设备时更改设备的尺寸。
原始[可重现的示例]给出:
您不清楚 x 和 y 轴标签有什么问题,但
corrplot()
改变了绘图边距以适应标签。您已经通过设置参数 tl.cex = 2
指定了这些 x 和 y 轴标签的相对大小。如果您希望标签更大,请增加此值:
corrplot(corr, method = "number", tl.cex = 4)
如果您想要更小的标签,请将
tl.cex
设置为更小的值:
corrplot(corr, method = "number", tl.cex = 0.8)
鉴于这些是绘图上唯一的 x 和 y 标签,这有帮助吗?如果没有,哪些标签需要更改?
您可以尝试使用 par 更改文本的磅值。我认为默认大小是 12。
在
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)