web-dev-qa-db-ja.com

R:大グラフネットワークを効率的に視覚化する方法

私はRのグラフネットワークデータ(~10,000の観察)をrとし、RでVisNetworkライブラリを使って視覚化しようとしました。グラフクエリ言語を使用して分析されることを意味します。

当面のために、私が作成したグラフネットワークの視覚化を改善するために私ができることはあります(たいてい互いの上に積まれているリンケージやノードのいくつかを探すことができます)。

このネットワークを視覚化するために、 'networkd3'や 'diagrammer'などのライブラリーは使用できますか?

私は以下の私の再現性のあるコードを添付しました:

library(igraph)
library(dplyr)
library(visNetwork)

#create file from which to sample from
x5 <- sample(1:10000, 10000, replace=T)
#convert to data frame
x5 = as.data.frame(x5)

#create first file (take a random sample from the created file)
a = sample_n(x5, 9000)
#create second file (take a random sample from the created file)
b = sample_n(x5, 9000)

#combine
c = cbind(a,b)
#create dataframe
c = data.frame(c)
#rename column names
colnames(c) <- c("a","b")

graph <- graph.data.frame(c, directed=F)
graph <- simplify(graph)
graph

plot(graph)

library(visNetwork)
nodes <- data.frame(id = V(graph)$name, title = V(graph)$name)
nodes <- nodes[order(nodes$id, decreasing = F),]
edges <- get.data.frame(graph, what="edges")[1:2]

visNetwork(nodes, edges) %>%   visIgraphLayout(layout = "layout_with_fr") %>%
    visOptions(highlightNearest = TRUE, nodesIdSelection = TRUE) %>% 
    visInteraction(navigationButtons = TRUE)
 _

感謝します

6
stats555

「実生活」のためのチップだけです。大きなグラフに対処するための最良の方法は、1)測定時に使用しているエッジをフィルタリングするか、または2)体重としていくつかの関連変数を使用します。

0
benjasast