Rで解析:ggplot2の表現が高まります「ggforce」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

ggplot2にはデータを分割プロットする「facet_wrap」や「facet_grid」コマンドが収録されています。これらコマンドは非常に便利ですが、分割前のプロットは別途コマンド実行が必要です。本パッケージには分割前と指定したグループを拡大表示してくれる「facet_zoom」コマンドが収録されています。「facet_wrap」や「facet_grid」コマンドと使用目的が異なりますが便利なので紹介します。

なお、「facet_zoom」コマンドの例は散布図ですが箱ひげ図や折れ線グラフなども適応可能です。

パッケージバージョンは0.4.1。実行コマンドはwindows 11のR version 4.2.1で確認しています。

スポンサーリンク

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

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

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

実行コマンドの紹介

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

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

###データ例の作成#####
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}
TestData <- tibble(Group = c(rep("Group1", 200), rep("Group2", 200),
                             rep("Group3", 500)),
                   Data1 = c(rnorm(200, 1, 1.5), rnorm(30, 5, 2),
                             rnorm(170, 7, 5), rnorm(250, 8, 2),
                             rnorm(250, 15, .8)),
                   Data2 = c(rnorm(200, 1, 1.5), rnorm(30, 5, 2),
                             rnorm(170, 7, 5), rnorm(250, 8, 2),
                             rnorm(250, 15, .8)))
########

#&#25351;&#23450;&#12375;&#12383;&#12464;&#12523;&#12540;&#12503;&#12434;&#25313;&#22823;&#34920;&#31034;:facet_zoom&#12467;&#12510;&#12531;&#12489;
#&#29033;&#38609;&#12395;&#12394;&#12427;&#12398;&#12391;&#12505;&#12540;&#12473;&#12392;&#12394;&#12427;&#25955;&#24067;&#22259;&#12434;&#28310;&#20633;
#&#20363;&#12391;&#12399;&#25955;&#24067;&#22259;&#12391;&#12377;&#12364;boxplot,lineplot&#12394;&#12393;&#12391;&#12418;&#36969;&#24540;&#21487;&#33021;&#12391;&#12377;
BasePoint <- ggplot(TestData, aes(x = Data1, y = Data2, colour = Group)) +
  geom_point()
#y&#36600;&#26041;&#21521;&#12391;&#25313;&#22823;
BasePoint + facet_zoom(y = Group == "Group1")
#x&#36600;&#26041;&#21521;&#12391;&#25313;&#22823;
BasePoint + facet_zoom(x = Group == "Group1")
#xy&#36600;&#26041;&#21521;&#12391;&#25313;&#22823;
BasePoint + facet_zoom(xy = Group == "Group1")
#&#29305;&#23450;&#12398;&#12464;&#12523;&#12540;&#12503;&#12434;&#38500;&#22806;&#12375;&#12390;&#25313;&#22823;
#!&#12398;&#28436;&#31639;&#23376;&#12434;&#20351;&#29992;&#12377;&#12427;
BasePoint + facet_zoom(x = Group != "Group1", y = Group == "Group1")

#violinplot&#12398;&#12509;&#12452;&#12531;&#12488;&#22411;:geom_sina&#12467;&#12510;&#12531;&#12489;
#violinplot&#12392;sinaplot&#12434;&#20006;&#12409;&#12390;&#34920;&#31034;
library("grid")
grid.newpage()
pushViewport(viewport(layout = grid.layout(1, 2)))
#violinplot
print(ggplot(TestData, aes(x = Group, y = Data2)) +
        geom_violin(aes(fill = Group)) +
        ggtitle("Violin Plot"),
      vp = viewport(layout.pos.row = 1, layout.pos.col = 1))
#geom_sina&#12467;&#12510;&#12531;&#12489;
#&#12509;&#12452;&#12531;&#12488;&#12469;&#12452;&#12474;&#12398;&#25351;&#23450;:size&#12458;&#12503;&#12471;&#12519;&#12531;
print(ggplot(TestData, aes(x = Group, y = Data2)) +
        geom_sina(aes(color = Group), size = 1) +
        ggtitle("Sina Plot"),
      vp = viewport(layout.pos.row = 1, layout.pos.col = 2))

出力例

・facet_zoomコマンド y軸方向で拡大

facet_zoomy

・facet_zoomコマンド x軸方向で拡大

facet_zoomx

・facet_zoomコマンド xy軸方向で拡大

facet_zoomxy

・facet_zoomコマンド 特定のグループを除外して拡大

facet_zoom

・facet_zoomコマンド 参考:BoxPlot

box-plot

・geom_sinaコマンド

geom_sina

少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました