我有一个大约5000个节点和5000个链接的图表,我可以通过
the vivagraph javascript library在Chrome中可视化(webgl比svg更快 – 例如在d3中).
我的工作流程是:
>使用networkx python库构建并将结果输出为json文件.
>加载json并使用the vivagraph javascript library构建图形.
>节点位置由js库计算
问题是渲染具有良好定位节点的布局需要时间.
我的方法是预先计算networkx中的节点位置.这种方法的真正好处在于它最大限度地减少了客户端在浏览器上的工作.但我无法在网页上取得好成绩.我需要这一步的帮助.
节点位置计算的相关python代码是:
## positionning
try:
# Position nodes using Fruchterman-Reingold force-directed algorithm.
pos=nx.spring_layout(G)
for k,v in pos.iteritems():
# scaling tentative
# from small float like 0.5555 to higher values
# casting to int because precision is not important
pos[k] = [ int(i*1000) for i in v.tolist() ]
except Exception, e:
print "positionning failed"
raise
## setting positions
try:
# set position of nodes as a node attribute
# that