使用node.js在sigma.js中预先计算图的位置(使用ForceAtlas2)
Pre-calculating positions (using ForceAtlas2) of graph in sigma.js using node.js
我目前正在实现一个使用AngularJS、sigma.js&用于可视化的d3.js。数据集将是安静的大数据集(除了图上的200万个节点。)。我正在将所有西格玛代码移植到服务器端,以尽可能减少浏览器的压力。我有它,这样它将为西格玛图服务器端生成节点和边的对象。
我现在的问题是试图让ForceAtlas2算法在node.js上工作。有可能在服务器端渲染图吗?或者至少让ForceAtlas2工作服务器端记录节点(x,y)的位置,这样它就不必在ForceAtlas 2客户端加载静态位置了?
sigma.js当前的ForceAtlas2还不能通过node.js/io.js在服务器端工作,因为它的许多代码都依赖于web工作者。也许可以填充web工作人员以使其在服务器端工作,但如果我没有记错的话,这还从未尝试过。
也就是说,我真的希望将其移植到服务器端,当我们将sigma.js移植到更新的打包系统(如commonjs)时,我可能很快就会这样做。
因此,就目前而言,我认为您的选择如下:
- 等待我开发一个服务器端兼容的算法版本
- 通过Gephi工具包使用Java版本
- 请尝试web工作者填充程序
- 在专用页面上运行算法客户端,并将布局数据返回到服务器(ew…)
你能在sigma.js的存储库上打开一个问题吗?这样我们就可以一起解决这个问题了?
这是针对这种情况的又一次演练。
如果用户希望多次查看图形的数据集。当用户第一次访问时,我们可以将x,y坐标写入[window.localStorage]。在用户停止ForceAtlas2或布局后几秒钟。
当该用户进一步访问时,只需从localStorage获取坐标,我们不需要再次执行ForceAtlas2。
您可以从获取x、y和节点坐标
sigmaInst.graph.nodes()
因此:
window.localStorage.setItem("cachedNodes", JSON.stringify(sigmaInst.graph.nodes()))
相关文章:
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- JS-使用Ajax获取文件名
- 基本D3.js:使用数据键
- Angular Js-使用特定键打印数组
- node.js使用monk从数组中按id获取文档
- Angular.js:使用ng repeat创建2个html容器
- 使用history.js使用多个GET参数
- Node.js使用派生两个子进程,然后两个子进程如何相互交换
- Pdf.js:使用base64文件源而不是url来呈现Pdf文件
- Passport.js:使用主干网访问用户
- 图表.js 2.0 使用货币和千位分隔符格式化 Y 轴
- fabric.js:使用 Image.set() 调整图像大小是否会降低图像质量
- 整页.js使用连续滚动或循环时禁用 moveSectionUp
- 节点.js 使用可写流写入文件时出现 EBADF 错误
- 如何获得pickadate.js使用JAWS屏幕阅读器
- JS使用不同的填充
- 选择2 JS使用Ajax加载远程数据
- 从 Node.JS使用 MailGun 发送 HTML 电子邮件
- 如何让node.js使用CFML风格的#hashed#变量
- 使用主干网.js使用“d”从 ASMX 获取数据