2010-09-23 6 views

ответ

51

ucfagls является правильным, обеспечивая вы используете команду plot(). Если нет, пожалуйста, сообщите нам подробнее.

В любом случае, вы можете контролировать каждую ось отдельно с помощью axis() команды и параметры xaxt/yaxt в plot(). Используя данные ucfagls, это становится:

plot(Y ~ X, data=foo,yaxt="n") 
axis(2,cex.axis=2) 

вариант yaxt = «п» следует избегать, что команда участок участки у-оси без изменения. Для оси х, это работает точно так же:

plot(Y ~ X, data=foo,xaxt="n") 
axis(1,cex.axis=2) 

Смотри также файлы справки пар и ось


Edit:? Как это для barplot, посмотрите на CEX варианты .axis и cex.Имена:

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

+0

Привет, извините за непонятное (снова). На самом деле я запускаю баррель с числовой осью X, но с строками для ярлыков оси y. Я предполагаю, что cex.axis в barplot не может обрабатывать текст, поскольку в help для par он говорит: «cex.axis = коэффициент расширения для меток числовой оси». Думаю, я должен использовать ваш подход с дополнительной командой оси для изменения оси y. Большое спасибо – Jens

+0

@Jens; Если использование '' barplot() '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' Чтобы использовать 'axis()', вам нужно будет указать средние точки бара (они возвращаются 'barplot()'). Использование вызова 'text()' с отключением отсечения также может быть способом сделать пользовательскую «ось» для штрих-кода. –

+0

@ucfagls В моей системе это действительно работает для оси Y. Для оси X это дает неправильный результат. Я адаптировал свой ответ за баррель. –

7

Не знаю, что вы делаете (полезно, чтобы показать, что вы пробовали, не работает), но ваше утверждение, что cex.axis воздействует только на ось х не так:

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(), который позволяет управлять штриховыми метками:

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

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

HTH

13

Как видно из названия, что мы хотим изменить размер этикетки, а не засечки я понял, что я на самом деле, возможно, что-то добавить к этому вопросу, вы должны использовать mtext(), если вы хотите указать один из размеров ярлыков, или просто можете использовать par(cex.lab=2) в качестве простой альтернативы. Вот более продвинутый мтекст() пример:

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

Смежные вопросы