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

Jen*_*ens 40 plot r labels

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

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

Jor*_*eys 61

ucfagls是对的,提供你使用plot()命令.如果没有,请给我们更多细节.

在任何情况下,您都可以使用axis()命令和xaxt/ yaxt选项分别控制每个轴plot().使用ucfagls的数据,这变为:

plot(Y ~ X, data=foo,yaxt="n")
axis(2,cex.axis=2)
Run Code Online (Sandbox Code Playgroud)

选项yaxt ="n"是必要的,以避免绘图命令绘制y轴而不改变.对于x轴,这完全相同:

plot(Y ~ X, data=foo,xaxt="n")
axis(1,cex.axis=2)
Run Code Online (Sandbox Code Playgroud)

另请参阅帮助文件?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)
Run Code Online (Sandbox Code Playgroud)

替代文字


Max*_*don 17

正如标题所暗示的,我们要调整的标签,而不是我想,我可能实际上添加了一些问题的刻度线的大小,你需要使用多行文字()如果你想指定标签的尺寸之一,或者您可以使用它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)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

您可能需要调整line=选项以获得文本的最佳定位,但除此之外它非常容易使用.


Rei*_*son 8

不知道你在做什么(有助于显示你尝试过的不起作用),但你声称cex.axis只影响x轴的说法不正确:

set.seed(123)
foo <- data.frame(X = rnorm(10), Y = rnorm(10))
plot(Y ~ X, data = foo, cex.axis = 3)
Run Code Online (Sandbox Code Playgroud)

至少对我来说:

> 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
Run Code Online (Sandbox Code Playgroud)

另外,cex.axis影响刻度线的标记.cex.lab用于控制R调用轴标签的内容.

plot(Y ~ X, data = foo, cex.lab = 3)
Run Code Online (Sandbox Code Playgroud)

但即使这适用于x轴和y轴.


跟进Jens关于使用的评论barplot().查看cex.names参数to barplot(),它允许您控制条形标签:

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

正如你所提到的cex.axis那只影响x轴,我认为你horiz = TRUEbarplot()电话也是如此?由于条形标签不是通过axis()呼叫绘制的,因此axis()在您使用的情况下,将Joris'(非常有用的)应答与个别呼叫一起使用将无济于事barplot()

HTH