Ось Y вне области построения с barplot () в R - PullRequest
4 голосов
/ 08 ноября 2010

У меня проблемы с получением оси Y на горизонтальной полосе () в области построения.Посмотрите на этот пример, я подумал, что использование ylim и / или yaxp остановит этот процесс за пределами области построения, но, похоже, это не сработает.

Я попытался воспроизвести набор, который у меня есть:

x <- matrix(abs(rnorm(34)), nrow = 34, ncol = 3)
rownames(x) <- c(seq(0,6600,200))
barplot(x[,3], horiz=TRUE, space = 0.4, main = "Title", las=1, cex.names=0.8, ylab="y label")

Но ось уходит из области построения, если я добавлю ylim:

barplot(x[,3], horiz=TRUE, space = 0.4, ylim = c(0,25), yaxp=c(0,25,1), main = "Title", las=1, cex.names=0.8, ylab="y label")

Ответы [ 2 ]

5 голосов
/ 08 ноября 2010

По какой-то (странной?) Причине для barplot по умолчанию установлено значение xpd = T, если для этого параметра установлено значение false, оно будет обрезаться, как и большинство функций печати:

barplot(x[,3], horiz=TRUE, space = 0.4, ylim = c(0,25), yaxp=c(0,25,1), main = "Title", las=1, cex.names=0.8, ylab="y label", xpd=F)
3 голосов
/ 08 ноября 2010

Ключевым моментом здесь является забыть о ylim при использовании barplot и вместо этого просто отправить желаемый диапазон печати в данных:

barplot(x[1:25,3], horiz=TRUE,  space = 0.4,  yaxp=c(0,25,1), main = "Title", las=1,  
          cex.names=0.8, ylab="y label")

Также обратите внимание, что индексирование в R начинается с 1, а не с 0, посколькувозможно на некоторых других языках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...