geom_signif не показывает все сравнения - PullRequest
0 голосов
/ 12 марта 2020

Я делаю линейные графики из средних значений и сводных данных SD, используя ggplot.

Я отмечаю значительные различия, используя функцию geom_signif () из пакета ggsignif.

Ни одно из сравнений между двумя конечными точками на оси x (день 2 и день 3) не отображается на графике. Все остальные значения значимости работают нормально. Почему эти сравнения не показывают, когда все остальные работают нормально?

Я скопировал код для примера изображения и приложил график, который он создает.

the plot it creates

У меня та же проблема со всеми графиками на моей панели.

panel figure

ortho_theme = theme(plot.title = element_text(face = "bold"),
                      axis.text.x = element_text(face = "bold", colour = "black", angle = 15, size = 12, hjust = 1),
                      axis.text.y = element_text( colour = "black", size = 12),
                      axis.title.y = element_text(face = "bold", colour = "black", size = 14),
                      legend.text = element_text(colour = "black", size = 12),
                      legend.title = element_text(face = "bold", colour = "black", size = 12))


(brain = 
  ggplot(Ortho_data, aes(x = Day, y = Cerebral_TOI_mean, group = factor(Condition), fill = factor(Condition))) +

   geom_errorbar(data = (Ortho_data %>% filter(Condition == "Stand")), 
                 aes(ymax = (Cerebral_TOI_mean),
                     ymin = (Cerebral_TOI_mean - Cerebral_TOI_SD)), width = 0.1) +  

   geom_errorbar(data = (Ortho_data %>% filter(Condition == "Supine")), 
                 aes(ymin = (Cerebral_TOI_mean),
                     ymax = (Cerebral_TOI_mean + Cerebral_TOI_SD)), width = 0.1) + 


   geom_line() + 
   geom_point(size = 4, shape = 21) +

  ggtitle("A") +
  ylab("Cerebral TOI (%)") + 
  xlab("") + 
  ylim(50, 85) +

  scale_fill_manual(values = c("black", "grey"), name = "Condition")+
  theme_classic() + 
  ortho_theme +

   annotate("text", x = 0.935, y = 78.6, label = "*", hjust = 0, size = 5) +

   geom_signif(comparisons = list(c("Sea level", "Day 2")), annotation = "‡", y_position = 82, vjust = -0.3, textsize = 3,
               tip_length = c(0.1, 0.02))+
   geom_signif(comparisons = list(c("Day 1", "Day 2")), annotation = "‡", y_position = 70, colour = "black", vjust = -0.3, textsize = 3,
               tip_length = c(0.1, 0.02))+
   geom_signif(comparisons = list(c("Day 1", "Day 3")), annotation = "‡", y_position = 75, colour = "black", vjust = -0.3, textsize = 3,
               tip_length = c(0.05, 0.2))+
   geom_signif(comparisons = list(c("Day 2", "Day 3")), annotation = "‡", y_position = 70, colour = "black", vjust = -0.3, textsize = 3)

  )

1 Ответ

0 голосов
/ 13 марта 2020

Я решил это, переместив группу aestheti c из ggplot aes в geom_line aes, как в минимально воспроизводимом примере ниже.

Это решает проблему, но я не понимаю, почему ...

library(ggplot2)
library(ggsignif)

data = data.frame(Day = factor(c("Sea level", "Day 1", "Day 2", "Day 3", "Sea level", "Day 1", "Day 2", "Day 3"),
                               levels = c("Sea level", "Day 1", "Day 2", "Day 3")), 
                  Condition = c("Supine", "Supine", "Supine", "Supine", "Stand", "Stand", "Stand", "Stand"),          
                  Values = c(1,1,2,4,2,2,3,5))



ggplot(data, aes(x = Day, y = Values)) + 

   geom_line(aes(group = Condition)) + 
   geom_point()+

   geom_signif(comparisons = list(c("Day 2", "Day 3")), annotation = "‡")


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...