Rで解析:ネットワーク図や2部グラフをプロット!!「multigraph」パッケージ

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

ネットワーク図や2部グラフが作成できるパッケージの紹介です。自身の集団と相手の集団との関係性を把握するのにおすすめなパッケージです。

パッケージバージョンは0.97-2。windows 11のR version 4.1.3で動作を確認しています。

スポンサーリンク

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

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

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

実行コマンドの紹介

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

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

###データ例の作成#####
TestData <- array(data = sample(1:100, 50, replace = TRUE), dim = c(5, 5, 2),
                  dimnames = list(paste0("Data", 1:5), paste0("Group", 1:5)))
#&#12493;&#12483;&#12488;&#12527;&#12540;&#12463;&#29992;&#12487;&#12540;&#12479;&#12434;&#20316;&#25104;
TestZeroOne <- ifelse(TestData > 50, 1, 0)
########

#&#12493;&#12483;&#12488;&#12527;&#12540;&#12463;&#22259;&#12434;&#20316;&#25104;:multigraph&#12467;&#12510;&#12531;&#12489;
#&#12487;&#12540;&#12479;&#12434;&#25351;&#23450;:net&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12456;&#12483;&#12472;&#12395;&#25351;&#21521;&#24615;&#12434;&#20184;&#19982;:directed&#12458;&#12503;&#12471;&#12519;&#12531;;FALSE&#12391;&#12394;&#12375;
#&#12524;&#12452;&#12450;&#12454;&#12488;&#35373;&#23450;:layout&#12458;&#12503;&#12471;&#12519;&#12531;;circ,force,stress,conc,rand&#12398;&#35373;&#23450;&#12364;&#21487;&#33021;
#&#12479;&#12452;&#12488;&#12523;&#12434;&#35373;&#23450;:main;&#21021;&#26399;&#20516;NULL
#&#12494;&#12540;&#12489;,&#12456;&#12483;&#12472;,&#32972;&#26223;&#33394;&#12398;&#36879;&#26126;&#24230;:alpha&#12458;&#12503;&#12471;&#12519;&#12531;;bg&#12399;1&#20197;&#22806;&#12358;&#12414;&#12367;&#21205;&#12363;&#12394;&#12356;
#&#12494;&#12540;&#12489;&#33394;&#12434;&#25351;&#23450;:vcol&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12456;&#12483;&#12472;&#33394;&#12434;&#25351;&#23450;:ecol&#12458;&#12503;&#12471;&#12519;&#12531;
#&#32972;&#26223;&#33394;&#12434;&#25351;&#23450;:bg&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12521;&#12505;&#12523;&#12469;&#12452;&#12474;:tcex&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12521;&#12505;&#12523;&#20301;&#32622;:pos&#12458;&#12503;&#12471;&#12519;&#12531;
par(mfrow = c(2, 3))
LayoutSet <- c("circ", "force", "stress", "conc", "rand")
for(i in seq(LayoutSet)){
  multigraph(net = TestZeroOne, directed = TRUE,
             layout = LayoutSet[i], main = paste0("Layout::", LayoutSet[i]),
             alpha = c(vertex = .5, edge = 1, bg = 1),
             vcol = "#9e323a", ecol = "black", bg = "white",
             cex = apply(TestData, 1, sum), tcex = .7, pos = 0)}

#2&#37096;&#12464;&#12521;&#12501;&#12434;&#20316;&#25104;:bmgraph&#12467;&#12510;&#12531;&#12489;
#&#12524;&#12452;&#12450;&#12454;&#12488;&#35373;&#23450;:layout&#12458;&#12503;&#12471;&#12519;&#12531;;"bip", "bip3", "bip3e",
#"bip3e", "bipc", "force","rand", "circ", "stress",
#"CA", "circ2"&#12398;&#35373;&#23450;&#12364;&#21487;&#33021;
par(mfrow = c(4, 3))
LayoutSet <- c("bip", "bip3", "bip3e", "bipc", "force",
               "rand", "circ", "stress", "CA", "circ2")
for(i in seq(LayoutSet)){
  bmgraph(net = TestZeroOne, directed = TRUE,
          layout = LayoutSet[i], main = paste0("Layout::", LayoutSet[i]),
          pch = c(19, 15), vcol = c("#8ebcf6", "#ddd5fa"), ecol = "black")}

出力例

同じデータをネットワーク図および2部グラフ(bmgraphコマンド)で示しています。画像のクリックで拡大表示できます。

・multigraphコマンド

・bmgraphコマンド


あなたの解析がとっても楽になりますように!!

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