49

如何仅调整 R 中 Y 轴标签的大小?

我知道 cex.axis 会改变轴标签的大小,但它只会影响 x 轴。为什么,以及如何调整 y 轴?

4

3 回答 3

73

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)

替代文字

于 2010-09-23T12:42:52.557 回答
22

正如标题所暗示的,我们想要调整标签的大小而不是刻度线,我认为我实际上可能会在问题中添加一些内容,如果要指定其中一个标签大小,则需要使用 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=选项以获得文本的最佳位置,但除此之外它真的很容易使用。

于 2013-03-30T09:24:19.740 回答
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参数barplot(),它允许您控制条形标签:

dat <- rpois(10, 3) names(dat) <- LETTERS[1:10] barplot(dat, cex.names = 3, cex.axis = 2)

正如您提到的那样,这cex.axis只会影响我认为您horiz = TRUEbarplot()通话中的 x 轴?由于条形标签不是通过axis()呼叫绘制的,因此在这种情况下,使用 Joris 的(否则非常有用)回答单个axis()呼叫将无济于事barplot()

高温高压

于 2010-09-23T12:04:18.140 回答