1. ホーム
  2. r

[解決済み] メインタイトルの追加 複数のプロット ggarange

2022-01-30 12:17:03

質問

1つのデータフレームがあります dt には、ダイビングの行動に関するデータが含まれており、3つの異なる領域でのデータです。 BA, MI, FA . 複数のプロットにメインタイトルを付けたいのですが ( ba, mi, fa を使用しています。 ggarrange しかし、うまくいくものが見つかりませんでした。 3つのプロットの一番上にメインタイトル "潜水深度 (m)" を追加したいのですが、どうすればいいですか?

library(data.table)
library(ggplot2)

dt = data.table(area= c("BA", "FA", "MI"),
                dmean = c(30, 50, 200, 76, 467, 87, 98, 10, 240, 176, 89, 400, 340, 10, 40, 54, 89, 340, 205),
                sex = c("F", "M"))

ba<-ggplot(dt[dt$area=="BA",], mapping = aes(y = dmean, x = sex, color = sex, fill=sex))+
  geom_violin(alpha=.5,scale = "width",trim = FALSE, position=position_dodge(1))+
  ggtitle("Dive mean at BA and sex")+
  scale_y_log10(breaks = c(10, 30, 50, 100, 200, 300, 400, 500)) +   
  scale_fill_discrete(name="Social class",
                      labels=c("Female", "Male"))+
  xlab("Habitat")+
  ylab("Dive depth (m)")+
  theme_bw();ba

mi<-ggplot(dt[dt$area=="MI",], mapping = aes(y = dmean, x = sex, color = sex, fill=sex))+
  geom_violin(alpha=.5,scale = "width",trim = FALSE, position=position_dodge(1))+
  ggtitle("Dive mean at MI and sex")+
  scale_y_log10(breaks = c(10, 30, 50, 100, 200, 300, 400, 500)) +   
  scale_fill_discrete(name="Social class",
                      labels=c("Female", "Male"))+
  xlab("Habitat")+
  ylab("Dive depth (m)")+
  theme_bw();mi

fa<-ggplot(dt[dt$area=="FA",], mapping = aes(y = dmean, x = sex, color = sex, fill=sex))+
  geom_violin(alpha=.5,scale = "width",trim = FALSE, position=position_dodge(1))+
  ggtitle("Dive mean at FA and sex")+
  scale_y_log10(breaks = c(10, 30, 50, 100, 200, 300, 400, 500)) +   
  scale_fill_discrete(name="Social class",
                      labels=c("Female", "Male"))+
  xlab("Habitat")+
  ylab("Dive depth (m)")+
  theme_bw();fa

t<-ggarrange(ba, mi, fa, 
             ncol=3, nrow=1, common.legend = TRUE, legend="bottom");t

#I tried insert:
 ggtitle = "Dive depths (m)"
 top = "Dive depths (m)")
 top=textGrob("Dive depths (m)"


誰かやり方知ってる?

どのように解決するのですか?

を使用することができます。 annotate_figure :

library(ggpubr)

plot<- ggarrange(ba,mi,fa, ncol=3, nrow=1, common.legend = TRUE,legend="bottom")

annotate_figure(plot, top = text_grob("Dive depths (m)", 
               color = "red", face = "bold", size = 14))