Добавить столбцы значимости на график уклоненных столбцов

У меня есть данные, которые выглядят так:

     reading condition   time
       <dbl>     <chr> <fctr>
1  0.0603376         A      4
2  0.0000000         A      4
3  0.0576497         A      4
4 11.4080000         B      4
5 11.0495000         B      4
6 14.0659000         B      4
...

и я хотел бы нарисовать гистограмму, используя ggplot2 с полосами значимости в уклоняющихся столбцах с пользовательскими аннотациями. Я использую пакет расширения ggsignif. Пример в документах работает:

ggplot(mpg, aes(class, hwy)) +
  geom_boxplot() +
  geom_signif(annotations = c("First", "Second"),
              y_position = c(30, 40), xmin=c(4,1), xmax=c(5,3))

но когда я пробую это с моими данными, это не так. Я попытался настроить параметры, но не могу понять, почему это не работает. Кто-нибудь может помочь?

df %>% 
ggplot(aes(time, reading,  fill = condition, group = condition)) +
  geom_bar(stat = "summary", fun.y = "mean", position = position_dodge(width = 0.5), width = 0.5) +
  geom_point(position = position_dodge(width = 0.5)) +
  geom_signif(annotations = c("First", "Second"),
              y_position = c(4, 12), xmin=c(1.5,2.5), xmax=c(2.5,3.5))

данные:

df <- structure(list(reading = c(0.0603376, 0, 0.0576497, 11.408, 11.0495, 
14.0659, 0, 0, 0, 1.00595, 0.862592, 1.93105, 0, 0, 0, 0.0726477, 
0.0778178, 0), condition = c("A", "A", "A", "B", "B", "B", "B", 
"B", "B", "B", "B", "B", "A", "A", "A", "A", "A", "A"), time = structure(c(3L, 
3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 
2L), .Label = c("0", "2", "4"), class = "factor")), .Names = c("reading", 
"condition", "time"), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -18L))

person G_T    schedule 31.10.2017    source источник
comment
После некоторых попыток удаление , group = condition из первой строки вашего графика сработает.   -  person bVa    schedule 31.10.2017
comment
@bVa, есть ли шанс, что вы можете добавить свой комментарий в качестве ответа, чтобы мы могли закрыть этот вопрос? Спасибо.   -  person Eric Fail    schedule 06.02.2018


Ответы (1)


Просто удалите group = condition из 1-й строки вашего кода:

введите здесь описание изображения

df %>% 
  ggplot(aes(time, reading,  fill = condition)) +
  geom_bar(stat = "summary", fun.y = "mean", position = position_dodge(width = 0.5), width = 0.5) +
  geom_point(position = position_dodge(width = 0.5)) +
  geom_signif(annotations = c("First", "Second"),
          y_position = c(4, 12), xmin=c(1.5,2.5), xmax=c(2.5,3.5))
person bVa    schedule 06.02.2018