如何仅调整 R 中 Y 轴标签的大小?
我知道 cex.axis 会改变轴标签的大小,但它只会影响 x 轴。为什么,以及如何调整 y 轴?
ucfagls 是对的,只要您使用该plot()
命令。如果没有,请给我们更详细的信息。
axis()
在任何情况下,您都可以使用命令和xaxt
/yaxt
选项分别控制每个轴plot()
。使用 ucfagls 的数据,这变成:
plot(Y ~ X, data=foo,yaxt="n")
axis(2,cex.axis=2)
选项 yaxt="n" 是必要的,以避免 plot 命令在不改变的情况下绘制 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)
正如标题所暗示的,我们想要调整标签的大小而不是刻度线,我认为我实际上可能会在问题中添加一些内容,如果要指定其中一个标签大小,则需要使用 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=
选项以获得文本的最佳位置,但除此之外它真的很容易使用。
不知道您在做什么(有助于显示您尝试的方法无效),但您声称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
参数barplot()
,它允许您控制条形标签:
dat <- rpois(10, 3) names(dat) <- LETTERS[1:10] barplot(dat, cex.names = 3, cex.axis = 2)
正如您提到的那样,这cex.axis
只会影响我认为您horiz = TRUE
在barplot()
通话中的 x 轴?由于条形标签不是通过axis()
呼叫绘制的,因此在这种情况下,使用 Joris 的(否则非常有用)回答单个axis()
呼叫将无济于事barplot()
高温高压