Как настроить размер меток оси y только в R?

Как настроить только размер меток Y-оси в R?

Я знаю, что cex.axis изменяет размер меток оси, но влияет только на ось x. Почему и как я могу отрегулировать ось y?

Ответ 1

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)

alt text

Ответ 2

Как видно из заголовка, мы хотим настроить размер меток, а не метки, которые, как я понял, на самом деле могли бы добавить что-то к вопросу, вам нужно использовать 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=, чтобы получить оптимальное позиционирование текста, но, кроме того, он очень прост в использовании.

Ответ 3

Не знаю, что вы делаете (полезно показать, что вы пробовали, что не сработало), но ваше утверждение о том, что 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.


Следуя комментарию Йенса об использовании barplot(). Проверьте аргумент cex.names на barplot(), который позволяет вам управлять метками панели:

dat < - rpois (10, 3) имена (dat) < - ПИСЬМА [1:10] barplot (dat, cex.names = 3, cex.axis = 2)

Как вы отмечаете, что cex.axis влияет только на ось x, я полагаю, что у вас был horiz = TRUE в вашем вызове barplot()? Поскольку метки ярлыков не нарисованы с вызовом axis(), применение Joris '(в противном случае очень полезного) ответа с индивидуальными вызовами axis() не поможет в этой ситуации с вами, используя barplot()

НТН