Rで解析:複数のggplotオブジェクトのプロットに便利です。「egg」パッケージ


投稿日: Rの解析に役に立つ記事

複数のggplotオブジェクトのプロットするのに便利なパッケージです。特にデータを決まった様式で繰り返しプロットする場合に役に立つかと思います。なお、プロットのレイアウトを確認する「expose_layout」は便利だと思います。

パッケージバージョンは0.1.0。実行コマンドはwindows 7およびOS X 10.11.2のR version 3.2.3で確認しています。


パッケージのインストール

下記、コマンドを実行してください。

#パッケージのインストール
install.packages("devtools")
devtools::install_github("baptiste/egg")
#念のため実行
install.packages(c("ggplot2", "gridExtra"))

実行コマンド

詳細はコメント、パッケージのヘルプを確認してください。

#パッケージの読み込み
library("egg")

###データ例の作成#####
n <- 30
TestData <- data.frame(Group = sample(paste0("Group", 1:5), n, replace = TRUE),
                       Data1 = rnorm(n),
                       Data2 = rnorm(n) + rnorm(n) + rnorm(n),
                       Data3 = sample(0:1, n, replace = TRUE),
                       Data4 = sample(LETTERS[1:26], n, replace = TRUE))
#######

###ggplot2のプロットデータを作成#####
#箱ひげ図
BoxPlot <- qplot(data = TestData, x = Group, y = Data1, fill = Group, geom = "boxplot")
#散布図
PointPlot <- qplot(data = TestData, x = Data2, y = Data1, color = Group, geom = "point") +
             ggtitle("TEST")
#棒グラフ
BarPlot <- qplot(data = TestData, x = Data4, fill = Data4, geom = "bar") +
           guides(fill = "none")
#棒グラフをGroupで分割
FacetBarPlot <- qplot(data = TestData, x = Data4, fill = Data4, geom = "bar") +
                facet_wrap(~Group, nrow = 1) + guides(fill = "none")
########

#グラフをまとめてプロット:grid.arrangeコマンド
#出力するグラフオブジェクトをlistで指定:grobsオプション
#グラフ横幅を指定:widthsオプション
#プロット分割の指定:layout_matrixオプション
grid.arrange(grobs = list(BoxPlot, PointPlot, BarPlot, FacetBarPlot),
             widths = c(1.5, 1),
             layout_matrix = rbind(c(1, 2), c(3, 3), c(4, 4))
             )

#グラフのレイアウトを確認:expose_layoutコマンド
#基本的なコマンドは下記の通り
#expose_layout(p, draw = TRUE, newpage = TRUE)
#lapplyコマンドで指定すると簡単です
#gridパッケージを読み込む
library("grid")
ExLapplyPlots <- lapply(list(BoxPlot, PointPlot, BarPlot, FacetBarPlot),
                        expose_layout, draw = FALSE, newpage = FALSE)
#内容をプロット
grid.arrange(grobs = ExLapplyPlots,
             widths = c(1.5, 1),
             layout_matrix = rbind(c(1, 2), c(3, 3), c(4, 4))
             )

出力例

・grid.arrangeコマンド
grid.arrange

・expose_layoutコマンド
expose_layout


少しでも、あなたのウェブや実験の解析が楽になりますように!!

スポンサードリンク

おすすめコンテンツ


スポンサードリンク