Rで解析:特定のグループに注目!!「ggfocus」パッケージ

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

「ggplot2」パッケージで特定のグループに注目した図を簡単に作成できるパッケージの紹介です。例えば散布図で特定グループをカラーで、他グループを白黒表示するなどです。便利なパッケージだと思います。

パッケージバージョンは1.0.0。実行コマンドはR version 4.2.2で確認しています。

スポンサーリンク

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

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

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

実行コマンド

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

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

###データ例の作成#####
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}
set.seed(1234)
n <- 50
TestData <- tibble(Group = sample(paste0("Group", 1:4), n,
                                  replace = TRUE),
                   X_num_Data = sample(c(1:50), n, replace = TRUE),
                   Y_num_Data = sample(c(51:100), n, replace = TRUE))

#ggplot&#12402;&#12394;&#24418;&#12434;&#20316;&#25104;
#&#25955;&#24067;&#22259;
Point_Plot <- ggplot(TestData, aes(x = X_num_Data, y = Y_num_Data)) +
  geom_point()
#&#26834;&#12464;&#12521;&#12501;
Column_Plot <- ggplot(TestData, aes(x = X_num_Data, y = Y_num_Data,
                                    fill = Group)) +
  geom_col()
#&#25240;&#12428;&#32218;&#12464;&#12521;&#12501;
Line_Plot <- ggplot(TestData, aes(x = 1:50, y = Y_num_Data,
                                  group = Group, linetype = Group)) +
  geom_line() 
########

#&#25955;&#24067;&#22259;&#12391;&#27880;&#30446;:scale_color_focus&#12467;&#12510;&#12531;&#12489;
#&#23550;&#35937;&#12434;&#25351;&#23450;:focus_levels&#12458;&#12503;&#12471;&#12519;&#12531;;&#25991;&#23383;&#21015;&#12391;&#25351;&#23450;
#&#33394;&#12434;&#25351;&#23450;:color_focus&#12458;&#12503;&#12471;&#12519;&#12531;
Point_Plot + aes(colour = Group, size = 5) + 
  scale_color_focus(focus_levels = c("Group2", "Group4"),
                    color_focus = c("red", "blue")) +
  guides(size = "none")

#&#26834;&#12464;&#12521;&#12501;&#12391;&#27880;&#30446;:scale_fill_focus&#12467;&#12510;&#12531;&#12489;
#&#23550;&#35937;&#12434;&#25351;&#23450;:focus_levels&#12458;&#12503;&#12471;&#12519;&#12531;;&#25991;&#23383;&#21015;&#12391;&#25351;&#23450;
#&#33394;&#12434;&#25351;&#23450;:color_focus
Column_Plot +
  scale_fill_focus(focus_levels = c("Group2", "Group4"),
                   color_focus = c("red", "blue"))

#&#25240;&#12428;&#32218;&#12464;&#12521;&#12501;&#12391;&#27880;&#30446;:scale_linetype_focus&#12467;&#12510;&#12531;&#12489;
#&#12402;&#12394;&#24418;&#12398;aes&#12395;group,linetype&#12434;&#25351;&#23450;&#12377;&#12427;&#12398;&#12364;&#12509;&#12452;&#12531;&#12488;
#&#23550;&#35937;&#12434;&#25351;&#23450;:focus_levels&#12458;&#12503;&#12471;&#12519;&#12531;;&#25991;&#23383;&#21015;&#12391;&#25351;&#23450;
#&#23550;&#35937;&#12398;&#32218;&#31278;&#12434;&#25351;&#23450;:linetype_focus&#12458;&#12503;&#12471;&#12519;&#12531;
#&#23550;&#35937;&#22806;&#12398;&#32218;&#31278;&#12434;&#25351;&#23450;:linetype_other&#12458;&#12503;&#12471;&#12519;&#12531;
Line_Plot +
  scale_linetype_focus(focus_levels = c("Group2", "Group4"),
                       linetype_focus = c(5, 1),
                       linetype_other = 3)

#&#12471;&#12531;&#12508;&#12523;&#12398;&#31278;&#39006;&#12392;&#22823;&#12365;&#12373;&#12391;&#27880;&#30446;:scale_shape_focus&#12467;&#12510;&#12531;&#12489;&#65286;scale_size_focus&#12467;&#12510;&#12531;&#12489;
##scale_shape_focus&#12467;&#12510;&#12531;&#12489;
#&#23550;&#35937;&#12398;&#12471;&#12531;&#12508;&#12523;&#12434;&#25351;&#23450;:shape_focus&#12458;&#12503;&#12471;&#12519;&#12531;
#&#23550;&#35937;&#22806;&#12398;&#12471;&#12531;&#12508;&#12523;&#12434;&#25351;&#23450;:shape_other&#12458;&#12503;&#12471;&#12519;&#12531;
Point_Plot + aes(size = Group, shape = Group) +
  scale_shape_focus(focus_levels = c("Group2", "Group4"),
                    shape_focus = c(18, 21), shape_other = 1) +
##scale_size_focus&#12467;&#12510;&#12531;&#12489;
#&#23550;&#35937;&#12398;&#12471;&#12531;&#12508;&#12523;&#12469;&#12452;&#12474;&#12434;&#25351;&#23450;:size_focus&#12458;&#12503;&#12471;&#12519;&#12531;
#&#23550;&#35937;&#22806;&#12398;&#12471;&#12531;&#12508;&#12523;&#12469;&#12452;&#12474;&#12434;&#25351;&#23450;:size_other&#12458;&#12503;&#12471;&#12519;&#12531;
  scale_size_focus(focus_levels = c("Group2", "Group4"),
                   size_focus = 7, size_other = 3)

出力例

・scale_color_focusコマンド

・scale_fill_focusコマンド

・scale_linetype_focusコマンド

・scale_shape_focusコマンド&scale_size_focusコマンド


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

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