График неравномерного интервала оси - PullRequest
0 голосов
/ 23 декабря 2011

Я пытаюсь воспроизвести график Фрая (см. Ниже) в базовой графике и в конечном итоге нанести на него числовые точки enter image description here

Этот график содержит неравные интервалы по оси Y. Я понял из других постов, что мне нужно ввести labels в качестве символов, но я не могу понять, что это правильно. У меня есть две проблемы, с которыми мне нужна помощь:

  1. Как правильно расположить метки (Y) на оси y
  2. Позже, когда мне нужно будет добавить очки (см. Конец кода), как я смогу нанести числовые точки на ось y, которая не является числовой?

КОД:

 Y <- c('2.0', '2.5', '3.0', '3.3', '3.5', '3.6', '3.7', '3.8', '4.0', '4.2', '4.3', 
          '4.5', '4.8', '5.0', '5.2', '5.6', '5.9', '6.3', '6.7', '7.1', '7.7', '8.3', 
          '9.1', '10.0', '11.1', '12.5', '14.3', '16.7', '20.0', '20+')

X11(14, 10)
plot(1, 1, xlim=c(108,172), axes=FALSE, type='n', 
    xlab="Average number of syllables per 100 words", 
    ylab="Average number of sentences per 100 words", 
    main="Fry Graph for Estimating Reading Ages (grade level)",
    xaxs = 'i', yaxs = 'i')

axis(1, at = 108:172, labels = TRUE)
axis(2, at = 2:25,  labels=Y)
grid(nx=64, ny=46, lty="solid", col="gold")
grid(nx=32, ny=23, lty="solid", col="gray65")
box()

y <-c(5, 5.9)
x <-c(128, 136)
points(x, y)

1 Ответ

1 голос
/ 24 декабря 2011

Вам необходимо устранить это несоответствие:

> length(Y)
[1] 30
> length(2:25)
[1] 24

Затем, добавив аргумент ylim = range (at-range) в вызове plot, вы сможете отобразить "at" все, что захотите. В настоящий момент ylim устанавливается диапазоном данных c (1,1).

(И las = 2 для поворота меток:)

plot(1, 1, xlim=c(108,172), axes=FALSE, type='n', ylim=c(1,30),
    xlab="Average number of syllables per 100 words", 
    ylab="Average number of sentences per 100 words", 
    main="Fry Graph for Estimating Reading Ages (grade level)",
    xaxs = 'i', yaxs = 'i')

axis(1, at = 108:172, labels = TRUE)
axis(2, at = 1:30,  labels=Y, las=2)
grid(nx=64, ny=46, lty="solid", col="gold")
grid(nx=32, ny=23, lty="solid", col="gray65")
box()

enter image description here

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