1

我有一个 xlsx 包含大约 2000 多个节点和 9000 条边。我想生成一个明确的有向图。我尝试在 R 中使用 igraph 包来生成我想要的有向图,但是(1)节点和边太多,无法清晰打印。我参考了一些使用 networkd3 将 igraph 转换为 networkd3 并绘图的文档,但是(2)方向(箭头)丢失。你能帮我解决这些情况吗?(1)或(2)。我的代码如下,我的数据格式如edge1.xlsx 源目标属性s1 s2 a s2 s7 b s2 s3 c

节点1.xlsx id attr s1 a s2 c s3 d s4 c

library(readxl)
library(igraph)
links <- read_excel("C:\\Users\\file\\Desktop\\1W\\edges1.xlsx",sheet=1,col_names = TRUE)
nodes <- read_excel("C:\\Users\\file\\Desktop\\1W\\nodes1.xlsx",sheet=1,col_names = TRUE)
net   <- graph_from_data_frame(d=links,vertices=unique(nodes$JYZH),directed = T)
plot(net, vertex.color="orange",vertex.size=.1,vertex.label=NA,vertex.label.color="black",vertex.label.dist=0,edge.arrow.size=.01)
#above work well with my data format but because it is too many nodes(2000+) and edges(9000+) to print clearly
library(networkD3)

#Use igraph to make the graph and find membership
wc <- cluster_walktrap(net)
members <- membership(wc)

#Convert to object suitable for networkD3
net_d3  <- igraph_to_networkD3(net,group = members)
forceNetwork(Links = net_d3$links, Nodes = net_d3$nodes,
         Source = 'source', Target = 'target', NodeID = 'name',Group = 'group', zoom = TRUE)
#using above code of networkd3,the direction lost.....

有没有解决这些问题的办法?

4

1 回答 1

2
  1. 无论您使用哪种软件来生成具有 2000 多个节点和 9000 条边的网络图,它都会变得一团糟。如果您使用 networkD3 绘制它,您希望会有什么不同?

  2. 更新(2017.03.24):此功能(使用箭头显示边缘/链接的方向)在 networkD3 的最新发布版本(0.4)中,arrows = TRUE参数为forceNetwork().

于 2017-02-23T09:40:59.350 回答