2013-12-06 7 views
7

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

Здесь команда geom_text слой: geom_text (данные = ldata, АЕС (х = XPOS, у = YPos, метка = лаборатория, размер = 1), группа = NULL, то hjust = 0, синтаксический анализ = FALSE)

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

ldata:

XPOS YPOS лаборатории

-10 1,35 378

-10 1,35 2

-10 1,35 50

-10 1,35 26

ответ

9

You почти есть. Просто вам понадобится еще один столбец в вашем фрейме данных 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) 

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

enter image description here

+1

Отлично. Так оно и было. Приведенные ниже примеры не ссылались на это. Спасибо, Рам! –

+0

Я нажал на галочку. Этого достаточно? –

+0

Да, спасибо. Это означает, что вы «приняли» ответ и ответили на вопрос. –

Смежные вопросы