Аннотация GGPlot выталкивается за пределы масштаба страницы при объединении нескольких графиков в grid.draw - PullRequest
0 голосов
/ 15 марта 2020

У меня есть 5 участков для 5 разных групп. Я хочу указать статистически значимую разницу в определенные c моменты времени. Я использовал annotate () для размещения звездочек на отдельных графиках над временными точками. Однако, когда я объединяю все графики в одну фигуру, звездочки отталкиваются от графиков. Похоже, проблема в том, что шкалы y не исправлены. Я предоставляю столько данных, сколько мне удобно. Первый бит кода для одной из групп. Все графики выглядят относительно похожими для 5 групп. Второй бит - это фрейм данных, который я использую для объединения графиков. Картины прикреплены к одному сюжету, затем все сюжеты объединены. На нескольких участках должно быть несколько звездочек

ggplot(data,aes(X,Y,group=Group,color=Group))+
  theme_bw()+
  theme(panel.grid.major=element_line(color="white",size=.1))+
  theme(panel.grid.minor=element_line(color="white",size=.1))+
  geom_point(stat="summary")+
  geom_errorbar(stat="summary",fun.data=mean_se,width=0.25)+
  geom_line(stat="summary")+
  scale_color_manual(labels = c("C", "T"),values=c("black", "red"))+
  theme(axis.title.y = element_text(vjust=2.5))+
  annotate("text", x=5, y=3, label= "*",size=10)

grid.newpage()

grid.draw(rbind(ggplotGrob(plotanimal1), 
            ggplotGrob(plotanimal2), 
            ggplotGrob(plotanimal3), 
            ggplotGrob(plotanimal4), 
            ggplotGrob(plotanimal5)))

One Graph

All 5 graphs

Ответы [ 2 ]

1 голос
/ 15 марта 2020

Вы можете сделать звездочки, используя geom_point с shape = 42. Таким образом, ggplot автоматически исправит значения оси y. Вам нужно установить эстетику на те же значения, которые вы имели бы с annotate. Так что вместо

 annotate("text", x=5, y=3, label= "*",size=10)

можно сделать

 geom_point(aes(x=5, y=3), shape = 42, size = 2)
0 голосов
/ 15 марта 2020

Вы пытались использовать пакет patchwork для организации участков? Обычно это работает лучше, чем grid.draw

...