geom_text записывает все данные по всем аспектам

Я использовал ggplot с facet_grid, и я хотел бы указать на каждом аспекте количество наблюдений в каждом аспекте. Я следую примерам, представленным на многих сайтах, но когда мне удается написать что-либо, он записывает все четыре числа наблюдений друг над другом на всех четырех графиках.

Вот команда слоя geom_text: geom_text(data=ldata, aes(x=xpos, y=ypos, label=lab, size=1), group=NULL, hjust=0, parse=FALSE)

ldata - это фрейм данных, в котором перечислены координаты (xpos, ypos) на каждом графике и количество наблюдений (лаборатория). Он печатает числа в правильном положении на графике, но все четыре написаны друг над другом на всех четырех графиках. Я не могу понять, что я делаю не так.

ldata:

xpos ypos lab

1 10 1,35 378

2 10 1,35 2

3 10 1,35 50

4 10 1,35 26

1 ответ

Решение

У вас почти есть это. Просто вам нужен еще один столбец в вашем ldata фрейм данных, который вы дадите facet_grid, (Я изменил Ypos на Inf)

Обратите внимание на роль splitter колонка в ldata ниже, и как это используется в facet_grid

xpos <- c(10,10,10) 
ypos <- c(Inf,Inf,Inf)
lab <- c(378,2,50)
splitter <- c(1:3)
ldata <- data.frame(xpos, ypos, lab, splitter)


ggplot(mtcars) + geom_bar(aes(x=cyl)) + facet_grid(~splitter) + 
  geom_text(data=ldata, aes(x=xpos, y=ypos, 
                            label=lab, size=1), 
            vjust=2, parse=FALSE)

Который производит:

Другие вопросы по тегам