R Barplot: ось Y срезана сверху? - PullRequest
2 голосов
/ 14 апреля 2019

Я пытаюсь использовать R, чтобы сделать барплот. Значения составляют от 0 до 5,0, но представляют собой десятичные значения (например, 4,87), поэтому я не хочу просто использовать ось Y по умолчанию, потому что она просто увеличивается с шагом 1.

Я создал пользовательскую ось Y, которая работает, но если я установил максимальное значение больше, чем около 4,5, она отсекает отметку в верхней части оси. Это выглядит неопрятно, поэтому я хочу, чтобы эта галочка всегда появлялась, но я не хочу укорачивать ось, так как если я это сделаю, то выглядит глупо.

Мой код R выглядит следующим образом:

# Bar plot of mean SUS question scores
barplot(meanSUSQuestions$Mean,
        main="Mean SUS Question Scores",
        cex.main="0.8",
        cex.axis="0.8",
        cex.lab="0.8",
        #names=c("q1", "q2", "q3","q4","q5","q6","q7","q8","q9","q10"),
        names=c(1:10),
        yaxt="n",
        col="red")
axis(2, cex.axis="0.8", at=seq(0, 5, 0.5)) # Create custom Y axis
mtext(text="Mean Score", side=2, line=2, cex=0.8)
mtext(text="Question", side=1, line=2, cex=0.8)

График, который это производит, выглядит так:

enter image description here

Как видно из рисунка, верхняя отметка отсутствует.

Как я могу получить эту верхнюю отметку?

1 Ответ

0 голосов
/ 14 апреля 2019

barplot генерирует высоту изображения на основе данных.Диапазон вашей ручной оси Y значительно больше, чем площадь графика, и поэтому он отрезан.

Самый простой способ решения проблемы в вашем конкретном случае - добавить yaxp = c(0, 5, 11) к barplot вместо yaxt = "n" и axis.

Автономный пример:

# Bad
x <- 1:5
barplot(x, yaxt = "n") #, add = TRUE)
axis(2, at = seq(0, 6, 2)) # Create custom Y axis

# Good
barplot(x, yaxp = c(0, 6, 2))
...