我该如何在R中仅调整Y轴标签的大小?
我知道cex.axis可以改变轴标签的大小,但它只影响X轴。为什么会这样,我该如何调整Y轴?
ucfagls是正确的,只要您使用plot()
命令。如果不是,请给我们更多细节。
无论如何,您可以使用plot()
中的axis()
命令和xaxt
/yaxt
选项单独控制每个轴。使用ucfagls的数据,这变成:
plot(Y ~ X, data=foo,yaxt="n")
axis(2,cex.axis=2)
yaxt="n"选项是必要的,以避免plot命令在不更改y轴的情况下绘制y轴。对于x轴,同样适用:
plot(Y ~ X, data=foo,xaxt="n")
axis(1,cex.axis=2)
另请参阅帮助文件 ?par 和 ?axis
编辑:由于这是针对条形图的,因此请查看选项 cex.axis 和 cex.names:
tN <- table(sample(letters[1:5],100,replace=T,p=c(0.2,0.1,0.3,0.2,0.2)))
op <- par(mfrow=c(1,2))
barplot(tN, col=rainbow(5),cex.axis=0.5) # for the Y-axis
barplot(tN, col=rainbow(5),cex.names=0.5) # for the X-axis
par(op)
par(cex.lab=2)
作为替代方法。以下是更高级的mtext()示例:set.seed(123)
foo <- data.frame(X = rnorm(10), Y = rnorm(10))
plot(Y ~ X, data=foo,
yaxt="n", ylab="",
xlab="Regular boring x",
pch=16,
col="darkblue")
axis(2,cex.axis=1.2)
mtext("Awesome Y variable", side=2, line=2.2, cex=2)
你可能需要调整line=
选项以获得最佳文本定位,但除此之外,它非常易于使用。不知道你在做什么(展示一下你尝试过但没成功的内容会有帮助),但是你声称只影响x轴是错误的:
set.seed(123)
foo <- data.frame(X = rnorm(10), Y = rnorm(10))
plot(Y ~ X, data = foo, cex.axis = 3)
对我而言,至少需要具备以下技能:
> sessionInfo()
R version 2.11.1 Patched (2010-08-17 r52767)
Platform: x86_64-unknown-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8
[5] LC_MONETARY=C LC_MESSAGES=en_GB.UTF-8
[7] LC_PAPER=en_GB.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] grid stats graphics grDevices utils datasets methods
[8] base
other attached packages:
[1] ggplot2_0.8.8 proto_0.3-8 reshape_0.8.3 plyr_1.2.1
loaded via a namespace (and not attached):
[1] digest_0.4.2 tools_2.11.1
cex.axis
影响刻度标记的标签。而 cex.lab
用于控制 R 如何调用轴标签。plot(Y ~ X, data = foo, cex.lab = 3)
即使如此,它也适用于x轴和y轴。
回答Jens有关使用barplot()
的评论。请注意barplot()
中的cex.names
参数,它允许您控制条形图标签:
dat <- rpois(10, 3) names(dat) <- LETTERS[1:10] barplot(dat, cex.names = 3, cex.axis = 2)
由于您提到cex.axis
仅影响了x轴,我假设您在barplot()
调用中同时使用了horiz = TRUE
。由于条形图标签未使用axis()
绘制,因此应用Joris的(非常有用的)答案并使用单独的axis()
调用在您使用barplot()
的情况下无法帮助解决这种情况。
希望能帮到你
barplot()
,则分离axis()
调用将无法工作,因为条形标签不是“轴”。要使用axis()
,您需要拥有条形图中点(这些由barplot()
返回)。使用打开剪辑的text()
调用也可能是进行条形图自定义“轴”的一种方法。 - Gavin Simpsonbarplot()
函数的horiz
参数。Jens遇到的问题是cex.axis
无法为其中一个轴(在他的情况下是x轴因此我们推测他使用了默认的horiz = FALSE
)。我的评论是,不是说axis()
有问题,而是对于x轴(在Jens的情况下)或条形图标签,不能通过单独调用axis()
进行控制[很难]。最终问题在于没有阅读?barplot
并且没有向我们提供可重现的示例来显示问题。 - Gavin Simpson