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


多重ネットワークグラフと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)
#グループ分け変数
set.seed(2345)
GroupCu <- sample(0:2, n, replace = TRUE)
########

#多重ネットワークグラフを作成する:multigraphコマンド
#データを指定:netオプション
#レイアウトを選択:layoutオプション;
#"circ","force","stress","conc","rand"
#背景色:bgオプション
multigraph(net = TestData, layout = "force",
           seed = 3, bg = "gray")

#グラフレイアウトの設定:multigraph;scopeオプション
#listで指定するのが簡単です。直接オプションで書き込むのも可
#シンボル、エッジの色は複数はベクトルで指定
#有向,無向の設定:directedオプション;有向/無向=TRUE/FALSE
#シンボルのグループ分け設定:cluオプション
#シンボルサイズ:cexオプション
#シンボル色:vcolオプション
#フォントサイズ:fsizeオプション
#フォント位置:posオプション;0でシンボル中央
#エッジ色:ecolオプション
#エッジ太さ:lwdオプション
#エッジ間の幅:bwdオプション
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)
#グラフレイアウトの適応:scopeオプション
multigraph(net = TestData, layout = "force",
           seed = 3, bg = "gray", scope = scp)

#2部グラフの作成:bmgraphコマンド
#レイアウトを選択:layoutオプション;
#"bip","bip3","bip3e","bipc","force",
#"rand","circ","stress","CA","circ2"
#グラフの回転:rotオプション;角度で入力
bmgraph(net = TestData, layout = "bip3",
        seed = 3, bg = "gray", rot = 65)

#グラフレイアウトを設定
#上記,multigraphコマンドの紹介を参照
scp <- list(directed = TRUE, cex = 5,
            vcol = c("#deb7a0", "#4b61ba", "yellow"),
            fsize = 8, pos = 0,
            ecol = c("#505457", "red"),
            lwd = 1, bwd = 0.5)
#グラフレイアウトの適応:scopeオプション
bmgraph(net = TestData, layout = "bip3",
        seed = 3, bg = "gray", rot = 65,
        scope = scp)

出力例

・multigraphコマンド

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

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

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


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

スポンサードリンク

スポンサードリンク