如何仅调整R?
中Y轴标签的大小我知道cex.axis会改变轴标签的大小,但它只会影响x轴。为什么,以及如何调整y轴?
答案 0 :(得分:57)
ucfagls是对的,假设您使用plot()
命令。如果没有,请提供更多详细信息。
在任何情况下,您都可以使用axis()
命令和xaxt
中的yaxt
/ plot()
选项分别控制每个轴。使用ucfagls的数据,这变为:
plot(Y ~ X, data=foo,yaxt="n")
axis(2,cex.axis=2)
选项yaxt =“n”是必要的,以避免绘图命令绘制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)
答案 1 :(得分:16)
由于标题表明我们想要调整标签的大小而不是刻度标记,我认为我实际上可能会在问题中添加一些东西,如果要指定其中一个,则需要使用mtext()标签尺寸,或者您可以使用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=
选项以获得文本的最佳定位,但除此之外,它非常容易使用。
答案 2 :(得分:8)
不知道你在做什么(有助于显示你尝试过的不起作用),但你声称cex.axis
只影响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()
的评论。查看cex.names
的{{1}}参数,它允许您控制条形标签:
dat&lt; - rpois(10,3) 姓名(dat)&lt; - LETTERS [1:10] barplot(dat,cex.names = 3,cex.axis = 2)
正如您所提到的,barplot()
仅影响x轴,我认为您的cex.axis
电话中也有horiz = TRUE
?由于条形标签未通过barplot()
调用绘制,因此在您使用axis()
{/ 1}}的情况下,对单独axis()
次调用应用Joris'(非常有用)的答案将无济于事p>
HTH