多重ネットワークグラフと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オプションを適応
少しでも、あなたの解析が楽になりますように!!