首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在sigma.js中使用node.js预先计算图形的位置(使用ForceAtlas2)

在sigma.js中使用node.js预先计算图形的位置(使用ForceAtlas2)
EN

Stack Overflow用户
提问于 2015-03-04 07:32:16
回答 2查看 1.6K关注 0票数 2

我目前正在实现一个web应用程序,它使用AngularJS、sigma.js和d3.js进行可视化。数据集将非常大(图上的200k节点除外)。我正在将所有sigma代码移植到服务器端,以便尽可能减少浏览器的压力。我让它为sigma图服务器端生成节点和边的对象。

我现在的问题是尝试让ForceAtlas2算法在node.js上工作。可以在服务器端渲染图形吗?或者至少让ForceAtlas2工作服务器端记录节点(x,y)的位置,这样它就不需要在ForceAtlas2客户端加载静态位置了?

EN

回答 2

Stack Overflow用户

发布于 2015-03-05 23:14:55

Sigma.js目前的ForceAtlas2还不能通过node.js/io.js在服务器端工作,因为它的很多代码都依赖于web workers。也许可以通过填充web workers来使其在服务器端工作,但是,如果我没记错的话,这还从来没有被尝试过。

这就是说,我真的希望将它移植到服务器端,当我们将sigma.js移植到像commonjs这样的更新的打包系统时,我可能会很快做到这一点。

所以,就目前而言,我会说你的选择如下:

  • 等待我开发与服务器端兼容的算法版本。
  • 通过Gephi工具包使用Java版本。
  • 尝试web worker填充程序。
  • 在专用页面上运行算法客户端,并将布局数据返回到服务器(新...)

<代码>F29

你可以在sigma.js的存储库上打开一个问题,这样我们可以一起解决这个问题吗?

票数 0
EN

Stack Overflow用户

发布于 2016-01-22 16:50:47

这是针对这种情况的另一种解决方案。

如果用户想要多次查看图表的数据集。当用户第一次访问时,我们可以将x,y坐标写入window.localStorage。在用户停止ForceAtlas2时或布局后几秒钟。

当这个用户进一步访问时,只需从localStorage获取坐标,我们就不需要再次执行ForceAtlas2。

可以从以下位置获得x,y和节点坐标

代码语言:javascript
复制
sigmaInst.graph.nodes()

所以:

代码语言:javascript
复制
window.localStorage.setItem("cachedNodes", JSON.stringify(sigmaInst.graph.nodes()))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28844080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档