視覚的に表現しようとしているかなり大きい(しかしまばらな)隣接行列(500x500)があります。力のあるグラフに似たものが私の最善の策だと思うし、これを実装する最善の方法を見つけようとしている間に、私はRのための複数のリソースに出くわした。最も役に立つのはhttp://kateto.net/network-visualizationのネットワーク可視化であった前にRを使ったことはありません。このような視覚化には多くの便利な機能があるようです。大規模な隣接行列を適切にプロットするR
私は以下のプロットを作成することができましたが、イメージはかなり小さく、ノードは積み重なっています。
PNGとは対照的に、私はPDFに印刷する場合、解像度はわずかに良いですが、私はまだスタッキング問題を抱えています。したがって、私の質問は、これらの問題を解決するために、どのようにRに大きな隣接行列を適切にプロットするかです。
これまでのところ、私のコードは以下の通りです(私のデータをプロットしようとしたいくつかの異なる方法があります)。すべてのヒントを高く評価しています。前もって感謝します。
便宜上、GitHubを参照している2つのファイルhttps://github.com/BStricklin/DataVizをアップロードしました。
plot.new()
library('igraph')
setwd("D:/Downloads/polnet2016/Data files")
nodes2 <- read.csv("nodes.csv", header=T, as.is=T)
links2 <- read.csv("nodeAdjacency.csv", header=T, row.names=1)
links2 <- as.matrix(links2)
head(nodes2)
head(links2)
net2 <- graph_from_incidence_matrix(links2)
net2 <- graph_from_adjacency_matrix(links2, mode = "undirected", weighted = TRUE)
net2 <- simplify(net2, remove.multiple = F, remove.loops = T)
V(net2)$label <- nodes2$id
deg <- degree(net2, mode="all")
V(net2)$size <- deg*3
#plot(net2)
#plot(net2, edge.label=round(E(net2)$weight, 3))
layout <- layout.reingold.tilford(net2)
#plot.igraph(net2,vertex.size=3,layout=layout.lgl)
plot.igraph(net2,vertex.size=3,vertex.label.cex=.5,layout=layout.fruchterman.reingold(net2, niter=10000))
編集:私はこれをやってしまったか疑問誰のために、私はMATLABを使用していたし、グラフやプロット機能を利用しました。それはRイメージほど厄介なものでしたが、ノードのカスタマイズやズーム機能の使用によって、十分に機能しました。私はまだRでこれを行う方法に興味があるでしょう。
マトリックスとグラフのプロットを見ることは興味深いでしょうhttps://en.wikipedia.org/wiki/Adjacency_matrix –
あなたは正しいです@ user20650、リンクはhttp://kateto.net/network-可視化 – Drofdarb
@ Zbosonもしあなたが私のgithubページに行くなら、nodeAdjacency.csvファイルは話すグラフです。違いは、リンクされているページのように単にボックスを塗りつぶすのではなく、マトリックスが重み付けされていることです。マトリックスの数は接続の強さを表します。 – Drofdarb