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

时间:2010-09-23 11:56:53

标签: r plot labels

如何仅调整R?

中Y轴标签的大小

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

3 个答案:

答案 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)

alt text

答案 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)

enter image description here

您可能需要调整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() axis()次调用应用Joris'(非常有用)的答案将无济于事p>

HTH