Rで解析:プロットや画像の複数表示に便利です「multipanelfigure」パッケージ


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

プロットや画像の複数表示に便利なパッケージの紹介です。ggplot2パッケージとけもフレ図鑑から画像を取得して表示する例の紹介です。

・けものフレンズ公式サイト
 http://kemono-friends.jp/

パッケージバージョンは0.9.0。windows 10のR version 3.3.3で動作を確認しています。


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

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

#パッケージのインストール
install.packages("multipanelfigure")

コマンドの紹介

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

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

###データ例の作成#####
n <- 500
TestData <- data.frame("Group" = sample(paste0("Group", 1:3), n, replace = TRUE),
                       "Data" = rnorm(n))
########

###プロット例の作成#####
library("ggplot2")
BoxPlot <- function(i = rainbow(16)[sample(1:16, 1)])
{
  ggplot(TestData, aes(x = Group, y = Data)) +
    geom_boxplot(fill = i)
}
########

#プロット区分を設定:multi_panel_figureコマンド
#各プロット区分の幅:widthオプション
#各プロット区分の高さ:heightオプション
#区分の列数:columnsオプション
#区分の行数:rowsオプション
PlotArea <- multi_panel_figure(width = 150, height = 150,
                               columns = 3, rows = 3)
#確認
PlotArea

#区分へプロット:fill_panelコマンド
#プロット区分変数とfill_panelコマンドを%<>%で繋ぐのがポイント
for(i in 1:9){
  
  PlotArea %<>% fill_panel(panel = BoxPlot())
  
}
#確認
PlotArea

###例えばこんな使い方1#####
#プロット区分を設定
PlotArea <- multi_panel_figure(width = 150, height = 150,
                               columns = 3, rows = 3)
#プロット区分を指定してプロット
#プロット1
PlotArea %<>% fill_panel(panel = BoxPlot(), column = 1:2, row = 1:2)
#プロット2
PlotArea %<>% fill_panel(panel = BoxPlot(), column = 3, row = 1:2)
#プロット3-5
PlotArea %<>% fill_panel(panel = BoxPlot(), column = 1, row = 3)
PlotArea %<>% fill_panel(panel = BoxPlot(), column = 2, row = 3)
PlotArea %<>% fill_panel(panel = BoxPlot(), column = 3, row = 3)
#確認
PlotArea
########

###例えばこんな使い方2#####
#画像表示スケールやクリッピングの設定も可能です
#キャラ画像を取得
FileList <- NULL
for(n in 1:6){
  #けもフレ図鑑から取得
  GetUrl <- paste0("http://kemono-friends.jp/wp-content/themes/kemono-friends/assets/zoo/img/detail/",
                   formatC(n, width = 3, flag = "0"), "/chara.png")
  #Tempフォルダへ保存設定
  FilePath <- paste0(tempfile(), "chara_", formatC(n, width = 3, flag = "0"), ".png")
  #保存
  download.file(GetUrl, destfile = FilePath, mode="wb")
  #ファイル名を保存
  FileList <- c(FileList, FilePath)
}
#プロット区分を設定
PlotArea <- multi_panel_figure(width = 150, height = 150,
                               columns = 3, rows = 3)
#プロット区分を指定してプロット
#プロット1:画像表示スケール設定
PlotArea %<>% fill_panel(panel = FileList[1], scaling = "fit", column = 1, row = 1:2)
#プロット2
PlotArea %<>% fill_panel(panel = FileList[6], scaling = "fit", column = 3, row = 1:2)
#プロット3-5
PlotArea %<>% fill_panel(panel = FileList[2], scaling = "none", column = 1, row = 3)
PlotArea %<>% fill_panel(panel = FileList[4], scaling = "fit", column = 2, row = 3)
PlotArea %<>% fill_panel(panel = FileList[3], scaling = "fit", column = 3, row = 3)
#プロット6:クリッピング設定
PlotArea %<>% fill_panel(panel = FileList[5], panel_clip = "off", column = 2, row = 2)
#確認
PlotArea
########

出力例

・multi_panel_figureコマンド

・fill_panelコマンド

・例えばこんな使い方1

・例えばこんな使い方2


少しでも、あなたの解析が楽になりますように!!「サクラクエスト」が面白い。Raspberry Piのutunbu server 静的IPの設定がうまくいかないですいったようです。よし、次はRStudio Serverの導入です。

スポンサードリンク

おすすめコンテンツ


スポンサードリンク