Rで解析:頂点、辺のグラフが簡単です!「ggpolar」パッケージ

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

頂点、辺のグラフを簡単に作成できるパッケージの紹介です。「ggplot2」パッケージのコマンドを適応できるので柔軟にグラフを作成できます。「facet_grid」コマンドなどが適応可能です。

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

スポンサーリンク

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

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

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

実行コマンド

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

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

###データ例の作成#####
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}
set.seed(1234)
n <- 16
#&#38283;&#22987;&#12464;&#12523;&#12540;&#12503;&#12487;&#12540;&#12479;
From <- sample(paste0("Group_", str_pad(1:8, 2, pad = 0)),
               n, replace = TRUE)

#&#32066;&#20102;&#12464;&#12523;&#12540;&#12503;&#12487;&#12540;&#12479;
To <- NULL
for(i in seq(From)){
  ToVec <- sample(From[-which(From %in% From[i])], 1)
  To <- c(To, ToVec)
}

#&#12471;&#12531;&#12508;&#12523;&#12469;&#12452;&#12474;&#12487;&#12540;&#12479;
Size <- NULL
SizeTable <- as_tibble(table(To)) %>%
  rename(SizeTo = To)
for(i in seq(From)){
  SizeTo <- SizeTable %>%
    filter(SizeTo == From[i]) %>%
    select(n) %>% as.numeric() %>%
    replace_na(1) 
  Size <- c(Size, SizeTo)
}

#&#12456;&#12483;&#12472;&#12487;&#12540;&#12479;
Edge <- sample(c("Increase", "Decrease"), length(From), replace = TRUE)

#&#12487;&#12540;&#12479;&#20316;&#25104;
TestData <- tibble(From, To, Size, Edge)
########

#&#24231;&#27161;&#31995;&#12391;&#12489;&#12483;&#12488;&#12434;&#12503;&#12525;&#12483;&#12488;:polar_init&#12467;&#12510;&#12531;&#12489;
#&#22522;&#28310;&#12392;&#12394;&#12427;&#12487;&#12540;&#12479;&#21015;&#12434;&#25351;&#23450;:x&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12381;&#12398;&#20182;,ggplot2::geom_point&#12398;&#12458;&#12503;&#12471;&#12519;&#12531;&#12364;&#20351;&#29992;&#21487;&#33021;
polar_init(data = TestData, x = From,
           aes(size = Size, color = Edge,
               shape = Edge)) -> TestPolar
#&#30906;&#35469;
TestPolar

#polar_init&#12467;&#12510;&#12531;&#12489;&#12391;&#20316;&#25104;&#12375;&#12383;&#12489;&#12483;&#12488;&#12395;&#32218;&#12434;&#20184;&#19982;:polar_connect&#12467;&#12510;&#12531;&#12489;
#&#65298;&#28857;&#38291;&#12398;&#12487;&#12540;&#12479;&#21015;&#12434;&#25351;&#23450;:x1,x2&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12381;&#12398;&#20182;,ggplot2::geom_segment&#12398;&#12458;&#12503;&#12471;&#12519;&#12531;&#12364;&#20351;&#29992;&#21487;&#33021;
TestPolar +
polar_connect(TestData, x1 = From, x2 = To,
              size = Size, color = Edge,
              linetype = Edge, alpha = 0.3) -> PlotPolar

#&#30906;&#35469;
PlotPolar

#&#21442;&#32771;:scale_color_manual&#12467;&#12510;&#12531;&#12489;&#12420;facet_grid&#12467;&#12510;&#12531;&#12489;&#12394;&#12393;&#12398;&#36969;&#24540;&#12364;&#21487;&#33021;&#12391;&#12377;
PlotPolar +
  scale_color_manual(values = c("darkgreen", "magenta")) +
  facet_grid(~Edge)

出力例

・polar_initコマンド

・polar_connectコマンド

・参考:scale_color_manualコマンドやfacet_gridコマンドなどの適応が可能です


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

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