10

視覚的に表現しようとしているかなり大きな (しかし非常にまばらな) 隣接行列 (500x500) があります。力有向グラフに似たものが私の最善の策であるように思われ、これを実装する最良の方法を見つけようとしているときに、R に関する複数のリソースに出会いました。最も役に立ったのはhttp:/のネットワーク可視化でした/kateto.net/network-visualization R は使ったことがありませんが、このような視覚化に役立つ機能がたくさんあるようです。

以下のプロットを作成できましたが、画像はかなり小さく、ノードが積み上げられています。

ここに画像の説明を入力

PNG ではなく pdf に印刷すると、解像度がわずかに向上しますが、スタッキングの問題はまだあります。したがって、私の質問は、これらの問題を解決するために、R で大きな隣接行列を適切にプロットするにはどうすればよいかということです。

これまでの私のコードは次のとおりです (最後の数行で、データをプロットするためにいくつかの異なる方法を試みました)。どんなヒントでも大歓迎です。前もって感謝します。

便宜上、https://github.com/BStricklin/DataVizの GitHub を参照する 2 つのファイルをアップロードしました。

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でこれを行う方法にはまだ興味があります。

4

3 に答える 3

0

プロット エリアを大きくしてみてください。

png("network_name.png", width = 15, height = 15, units = "in", res = 300)
plot.igraph(net2,vertex.size=3, 
vertex.label.cex=.5, 
layout=layout.fruchterman.reingold(net2, niter=10000)) 
dev.off()
于 2016-12-23T06:45:34.533 に答える