[英]R - change size of axis labels for corrplot
I am using the following with corrplo
t: 我使用以下与
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))
This is created with a csv file available here . 这是使用此处提供的csv文件创建的。
The graph is fine and I can adjust the cl labels all I want. 图表很好,我可以调整我想要的cl标签。 I've tried adjusting the labels on x and y axis with no impact.
我试过调整x和y轴上的标签没有任何影响。 I looked at changing mar - yet I haven't found a way to.
我看着改变马克 - 但我还没找到办法。 I was unsuccessful with trying to use cex.label to change size.
我尝试使用cex.label来改变大小是不成功的。
The question - how can I make the text appearing for corrplot (not the cl, and not in the grid) larger? 问题 - 如何使文本出现在corrplot(不是cl,而不是在网格中)更大?
The two axes are the following data frames: 两个轴是以下数据框:
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)
The output from 输出来自
str(lpp_axis1)
is 是
> 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 ...
The output from 输出来自
packageDescription("corrplot")
indicates: 说明:
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
>
The corrplot maintainer wrote back with an alternate corrplot.r available here corrplot维护者用一个备用的corrplot.r回复了这里
Using the this corrplot and the example code below, the text size is acceptable. 使用此corrplot和下面的示例代码,文本大小是可以接受的。 However, attempts to increase it also produce the same effects.
然而,增加它的尝试也产生相同的效果。
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))
Using an earlier version of the correlation circles available here , it is possible to adjust the text to one's heart desire. 使用此处可用的相关圈的早期版本,可以根据一个人的心愿调整文本。 (Though the graph lacks some of the functionality of the later, more refined corrplot package.) cex can be used for cex.
(虽然该图缺少后来更精确的corrplot包的一些功能。)cex可用于cex。 I may try to tweak the two to come up with a happy medium as time permits.
我可以尝试调整这两个,以便在时间允许的情况下提出一个快乐的媒介。
Using the older correlation circles script, the following code produces sufficiently large X and Y axis labels: 使用较旧的相关圆圈脚本,以下代码生成足够大的X和Y轴标签:
circle.corr(cor(lpp_axis1, lpp_axis2), bg = "gray50", col = colorRampPalette(c("navyblue","white", "red"))(100), cex=1.5)
Update2 UPDATE2
Actually a real reproducible example is now, thanks to code and data being provided: 实际上,由于提供了代码和数据,现在是一个真正可重现的例子:
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))
The dev.new()
allows you to have both on screen at once to compare, without splitting the plotting region into two panels. dev.new()
允许您同时在屏幕上进行比较,而不将绘图区域分成两个面板。
The tl.offset
seems to cause more problems than it is worth, so I have left it out. tl.offset
似乎造成了比它值得多的问题,所以我把它排除在外。 I include the two figures below: 我包括以下两个数字:
With tl.cex = 1
tl.cex = 1
With tl.cex = 2
tl.cex = 2
As you can see, I can't reproduce the problem you are seeing; 如你所见,我无法重现你所看到的问题;
tl.cex
is only changing the size of the size of the axis labels. tl.cex
仅更改轴标签大小。 Note this is without using tl.offset
but the rest of the plotting code is the same as yours. 请注意,这不使用
tl.offset
但其余的绘图代码与您的相同。
This is what I get from packageDescription()
: 这是我从
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
-- File: /home/gavin/R/libs/corrplot/Meta/package.rds - 文件:/home/gavin/R/libs/corrplot/Meta/package.rds
Compare it with the one on your system and try the example above so we are running exactly the same code for comparison. 将它与您系统上的那个进行比较并尝试上面的示例,以便我们运行完全相同的代码进行比较。
Original Example Here is a reproducible example: 原始示例以下是可重现的示例:
require(corrplot)
data(mtcars)
corr <- cor(mtcars)
corrplot(corr, method = "number", tl.cex = 2)
Update 更新
Ok, I see the problem now. 好的,我现在看到了问题。 With
tl.offset
, you push the labels away from the correlation graphic further out into the margins. 使用
tl.offset
,您可以将标签从相关图形中进一步推出到边距中。 This seems either a bug on infelicity in corrplot()
as if you don't set tl.offset
it scales the correlation graphic to accommodate the labels. 这似乎是
corrplot()
中的corrplot()
错误,就像你没有设置tl.offset
它会缩放相关图形以容纳标签。 The only solution I can see is to not set tl.offset
at all, or set it to a smaller value Here is an extreme example: 我能看到的唯一解决方案是根本不设置
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)
You can improve things, by altering the relative dimensions of the plot device - if on screen, increase the width or height (or both) of the plot device window until all the labels are visible. 您可以通过更改绘图设备的相对尺寸来改进 - 如果在屏幕上,增加绘图设备窗口的宽度或高度(或两者),直到所有标签都可见。 If this is another device (
pdf()
or png()
say), then you'll need to alter the dimensions of the device when you create it. 如果这是另一个设备(
pdf()
或png()
说),那么您需要在创建设备时更改设备的尺寸。
Original Which [The reproducible example] gives: 原件 [可重现的例子]给出:
You aren't clear what the problem with the x and y axis labels, but corrplot()
alters the plot margins to accommodate the labels. 您不清楚x和y轴标签的问题,但
corrplot()
会更改绘图边距以容纳标签。 You have already stated the relative size of these x and y axis labels by setting argument tl.cex = 2
. 您已通过设置参数
tl.cex = 2
说明这些x和y轴标签的相对大小。 If you want the labels bigger, increase this value: 如果您希望标签更大,请增加此值:
corrplot(corr, method = "number", tl.cex = 4)
and if you want smaller labels, set tl.cex
to a smaller value: 如果你想要更小的标签,请将
tl.cex
设置为更小的值:
corrplot(corr, method = "number", tl.cex = 0.8)
Given these are the only x and y labels on the plot, does this help? 鉴于这些是图中唯一的x 和 y标签,这有帮助吗? If not, which labels need altering?
如果没有, 哪些标签需要改变?
You could try changing the point size of text with par. 您可以尝试使用par更改文本的磅值。 I think the default size is 12.
我认为默认大小是12。
Adding a line like par( ps=14)
before corrplot
should make the text larger. 在
corrplot
之前添加像par( ps=14)
corrplot
应该使文本更大。
Given the examples you added, you might have to increase the dimensions of the plot and set the outer margins to accommodate the length of your labels. 根据您添加的示例,您可能必须增加绘图的尺寸并设置外边距以适应标签的长度。
The current plot dimension can be accessed with par()$pin
and the outer margins with par()$omi
. 可以使用
par()$pin
访问当前绘图尺寸,使用par()$omi
访问外边距。
You can change the plot dimension and the outer margins by adapting the following example: 您可以通过调整以下示例来更改绘图尺寸和外边距:
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.