D3.js是Neo4j Graph DB数据实时可视化的正确选择

时间:2013-02-14 03:06:10

标签: d3.js visualization neo4j graph-databases graph-visualization

我是威斯康星大学的CS研究生,我的小组正在尝试可视化实时放入neo4j图形数据库的特定网络流量。

我读过许多不同的工具,例如gephi,cytoscape,人力车(基于D3.js),其他一些工具和D3.js.

我们到目前为止与D3.js一起前进,但想得到社区意见。我们不能因为neo4j而使用cytoscape,并且认为D3.js在快速实时环境中对于半大数据最有效。

建议?

或许对于另一个问题,也可以随意输入:实现neo4j的最佳方式? Java,Ruby,node.js?

谢谢!

4 个答案:

答案 0 :(得分:12)

对于这类问题,并不是一个灵丹妙药的解决方案,而且大多数取决于你的想法,团队和预算(金钱和时间)。

我不推荐你D3,除非你必须满足以下条件之一:

  • 您希望创建一种全新的数据可视化方式
  • 你的团队中有技术熟练的人 - 可以是你 - 使用D3
  • 您已经有其他D3小部件/ viz进行整合

如果您没有遇到上述任何条目,我会将D3放在一边,并告诉您查看:

免责声明:我是其中一位KeyLines开发人员。

根据您拥有的数据大小,库的选择可能会发生变化:如果您计划在图表上不超过3/400个节点而不需要特定的样式/动画,那么我认为SigmaJS不仅仅是精细;如果您正在寻找更高级的样式或动画,我会推荐KeyLines,因为它旨在处理这种情况(提供增量布局)并且它可以扩展到2000个节点而没有任何问题 - 尽管我可能会建议在这个尺寸的一侧使用过滤器。

我将VivaGraph命名为最后的手段:SigmaJS也有一个WebGL渲染器,并提供更好的渲染恕我直言。
VivaGraphJS将很快被ngraph取代,它将使用不可知的aproach进行渲染:你可以使用PIXI,Fabric或任何你想要的东西....

使用WebGL渲染器在加载资产一次并重复使用时是有意义的:如果您在实时场景中设置图表元素的样式,那么在Canvas IMHO中没有优势。< / p>

答案 1 :(得分:9)

我的理解:Gephi在实时更新方面表现不佳;它通常用于静态数据。

一个主要考虑因素 - 您希望呈现的可视化是什么?它是有向图吗?循环?加权?附加标签?

某些工具包在它们可以显示的内容中“固定”,但可以轻松呈现图形。其他(如d3)非常易于扩展,因此您可以创建任何东西。

出于StackOverflow格式的目的,如果您能够确定系统的限制和需求(实际数据速率,瘦/厚客户端,类型等),您可能会得到更好的答案

答案 2 :(得分:8)

查看使用webgl进行渲染的vivagraph,并且对于大型网络也可以很好地扩展。他们有一些非常好的例子(FB,亚马逊)。

http://github.com/anvaka/VivaGraphJS

答案 3 :(得分:7)

我认为D3很棒,但是,最近,在FOSDEM上有一篇关于Sigma.js的讨论,解释说这对于更大的图表更好。另请参阅http://thewhyaxis.info/hairball/