Как добавить значения данных переменной над столбцами Barplot?

введите сюда описание изображенияНа данной диаграмме я хотела бы получить количество ответивших на самих столбцах.Наподобие этоговведите сюда описание изображения


Ответы (1 шт):

Автор решения: aleksandr barakin

для добавления надписей на график можно использовать функцию geom_text().

возьмём для примера набор данных mpg и нарисуем разбивку по переменной class:

> ggplot(mpg, aes(class)) + geom_bar()

исходный график

чтобы надпись содержала количество наблюдений (count), функции geom_text() надо передать такие параметры:

> ggplot(mpg, aes(class)) + geom_bar()
  + geom_text(stat= "count", aes(y = ..count.., label = ..count..))

первая попытка

уже практически то, что нужно. только вот надписи сливаются со столбиками и надо бы выводить их не вровень с верхним краем столбика, а немного выше. для этого подойдёт параметр vjust (видимо, «vertical adjust»):

> ggplot(mpg, aes(class)) + geom_bar()
  + geom_text(stat= "count", aes(y = ..count.., label = ..count..), vjust = -0.5)

выравнивамем надпись по вертикали

теперь, вроде, всё как надо.


как вариант — можно не сдвигать надписи, а выделить их, заменив функцию geom_text() на geom_label():

> ggplot(mpg, aes(class)) + geom_bar()
  + geom_label(stat= "count", aes(y = ..count.., label = ..count..))

используем geom_label()

на мой взгляд — даже симпатичнее получилось.


p.s. ещё вместо vjust можно сразу увеличить вертикальную позицию. например, на единицу:

> ggplot(…) + … + geom_text(…, aes(y = ..count.. + 1, …))
→ Ссылка