Rで解析:多重ネットワークグラフと2部グラフの作成「multigraph」パッケージ

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

多重ネットワークグラフと2部グラフの作成に便利なパッケージの紹介です。データの特徴を改めて見直すことができるかもしれません。実行コマンドでは「array」classを利用していますが、「matrix」classでも単独でグラフの作成が可能です。

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

スポンサーリンク

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

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

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

実行コマンド

詳細はコマンド、各パッケージのヘルプを確認してください。「array」コマンドの例にもなればと思います。「array」コマンドは特にパッケージが必要なく初期状態で実行可能です。

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

###データを準備#####
n = 8
#3次元の配列を作成
TestData <- array(0, c(n, n, 2),
                  dimnames = list(LETTERS[1:n],
                                  LETTERS[1:n]))
set.seed(1234)
TestData[,, 1] <- sample(0:1, n^2, replace = TRUE)
set.seed(5678)
TestData[,, 2] <- sample(0:1, n^2, replace = TRUE)
#&#12464;&#12523;&#12540;&#12503;&#20998;&#12369;&#22793;&#25968;
set.seed(2345)
GroupCu <- sample(0:2, n, replace = TRUE)
########

#&#22810;&#37325;&#12493;&#12483;&#12488;&#12527;&#12540;&#12463;&#12464;&#12521;&#12501;&#12434;&#20316;&#25104;&#12377;&#12427;:multigraph&#12467;&#12510;&#12531;&#12489;
#&#12487;&#12540;&#12479;&#12434;&#25351;&#23450;:net&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12524;&#12452;&#12450;&#12454;&#12488;&#12434;&#36984;&#25246;:layout&#12458;&#12503;&#12471;&#12519;&#12531;;
#"circ","force","stress","conc","rand"
#&#32972;&#26223;&#33394;:bg&#12458;&#12503;&#12471;&#12519;&#12531;
multigraph(net = TestData, layout = "force",
           seed = 3, bg = "gray")

#&#12464;&#12521;&#12501;&#12524;&#12452;&#12450;&#12454;&#12488;&#12398;&#35373;&#23450;:multigraph;scope&#12458;&#12503;&#12471;&#12519;&#12531;
#list&#12391;&#25351;&#23450;&#12377;&#12427;&#12398;&#12364;&#31777;&#21336;&#12391;&#12377;&#12290;&#30452;&#25509;&#12458;&#12503;&#12471;&#12519;&#12531;&#12391;&#26360;&#12365;&#36796;&#12416;&#12398;&#12418;&#21487;
#&#12471;&#12531;&#12508;&#12523;&#12289;&#12456;&#12483;&#12472;&#12398;&#33394;&#12399;&#35079;&#25968;&#12399;&#12505;&#12463;&#12488;&#12523;&#12391;&#25351;&#23450;
#&#26377;&#21521;,&#28961;&#21521;&#12398;&#35373;&#23450;:directed&#12458;&#12503;&#12471;&#12519;&#12531;;&#26377;&#21521;/&#28961;&#21521;=TRUE/FALSE
#&#12471;&#12531;&#12508;&#12523;&#12398;&#12464;&#12523;&#12540;&#12503;&#20998;&#12369;&#35373;&#23450;:clu&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12471;&#12531;&#12508;&#12523;&#12469;&#12452;&#12474;:cex&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12471;&#12531;&#12508;&#12523;&#33394;:vcol&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12501;&#12457;&#12531;&#12488;&#12469;&#12452;&#12474;:fsize&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12501;&#12457;&#12531;&#12488;&#20301;&#32622;:pos&#12458;&#12503;&#12471;&#12519;&#12531;;0&#12391;&#12471;&#12531;&#12508;&#12523;&#20013;&#22830;
#&#12456;&#12483;&#12472;&#33394;:ecol&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12456;&#12483;&#12472;&#22826;&#12373;:lwd&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12456;&#12483;&#12472;&#38291;&#12398;&#24133;:bwd&#12458;&#12503;&#12471;&#12519;&#12531;
scp <- list(directed = TRUE, cex = 8, clu = GroupCu, 
            vcol = c("#deb7a0", "#4b61ba", "yellow"),
            fsize = 13, pos = 0,
            ecol = c("#505457", "red"),
            lwd = 1, bwd = 0.5)
#&#12464;&#12521;&#12501;&#12524;&#12452;&#12450;&#12454;&#12488;&#12398;&#36969;&#24540;:scope&#12458;&#12503;&#12471;&#12519;&#12531;
multigraph(net = TestData, layout = "force",
           seed = 3, bg = "gray", scope = scp)

#2&#37096;&#12464;&#12521;&#12501;&#12398;&#20316;&#25104;:bmgraph&#12467;&#12510;&#12531;&#12489;
#&#12524;&#12452;&#12450;&#12454;&#12488;&#12434;&#36984;&#25246;:layout&#12458;&#12503;&#12471;&#12519;&#12531;;
#"bip","bip3","bip3e","bipc","force",
#"rand","circ","stress","CA","circ2"
#&#12464;&#12521;&#12501;&#12398;&#22238;&#36578;:rot&#12458;&#12503;&#12471;&#12519;&#12531;;&#35282;&#24230;&#12391;&#20837;&#21147;
bmgraph(net = TestData, layout = "bip3",
        seed = 3, bg = "gray", rot = 65)

#&#12464;&#12521;&#12501;&#12524;&#12452;&#12450;&#12454;&#12488;&#12434;&#35373;&#23450;
#&#19978;&#35352;,multigraph&#12467;&#12510;&#12531;&#12489;&#12398;&#32057;&#20171;&#12434;&#21442;&#29031;
scp <- list(directed = TRUE, cex = 5,
            vcol = c("#deb7a0", "#4b61ba", "yellow"),
            fsize = 8, pos = 0,
            ecol = c("#505457", "red"),
            lwd = 1, bwd = 0.5)
#&#12464;&#12521;&#12501;&#12524;&#12452;&#12450;&#12454;&#12488;&#12398;&#36969;&#24540;:scope&#12458;&#12503;&#12471;&#12519;&#12531;
bmgraph(net = TestData, layout = "bip3",
        seed = 3, bg = "gray", rot = 65,
        scope = scp)

出力例

・multigraphコマンド

・multigraphコマンドにscopeオプションを適応

・2部グラフの作成:bmgraphコマンド

・bmgraphコマンドにscopeオプションを適応


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

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