Проблема в том, что barplot
автоматически добавляет пробел 0,2 перед каждой полосой. Это означает, что у вас есть два варианта. Один из них - избавиться от пробелов, а затем вычесть 0,5 из значения каждого abline
, чтобы оно соответствовало центру полосы:
Rating <- factor(c(1, 2, 2, 2, 2, 2, 3, 3, 4, 5), levels = 1:7)
barplot(table(Rating),
main = "E1 - Ärger",
xlab = "Rating",
ylab = "Häufigkeit", space = 0)
abline(v = seq(7) - 0.5, col = "red")
The other option is to leave the spaces by starting at 0.7 and incrementing by 1.2 for each bar:
barplot(table(Rating),
main = "E1 - Ärger",
xlab = "Rating",
ylab = "Häufigkeit")
abline(v = seq(0.7, 8, 1.2), col = "red")
введите описание изображения здесь
Чтобы упростить эту задачу, вы можете определить функцию, которая будет выполнять вычисления за вас:
add_vlines <- function(x) abline(v = (x * 1.2) - 0.5, col = "red")
Итак, вы можете просто сделать:
add_vlines(1:7)
чтобы получить нужные строки.