6

最近我探索了一些库,我可以在其中可视化来自 Neo4j 的图形,但没有得到一个清晰的视图来选择,所以我有几个想分享一下。

我的要求和愿望 - 通过 REST API 搜索后,使用密码查询可视化具有所有关系、节点的图形。结果使交互 - 能够拖放...机会在点击时显示其他节点/rels。通过 json 数据导入节点,并能够快速显示至少 400 个元素。

所以我或多或少地探索了更多的图书馆:

Three.js - 主要用于 3D。(如果我不需要 3D 最好不要选择这个)

Arbor.js - 绘图由你决定,主要是布局库

VivaGraphJS - 易于使用,但几乎没有文档 :(

D3.js - 看起来不错,但使用 SVG

Cytoscape.js - 看起来不错,但我读到我不能将它与 Neo4j 一起使用。 D3.js 是 Neo4j Graph DB 数据实时可视化的正确选择, 为什么?

Processing.js - 拥有自己的类似于 Java 的语言。我还不太会使用类似 Java 的语言。

我有几个问题:

1)你的经验是什么 - 图书馆的好处,弱点?

2)我想我想使用 SVG 的画布?(屏幕上有很多小元素)。

3) Arbor 是布局的特殊库,但其他人没有布局算法或什么?

我会很感激任何意见!:-)

4

4 回答 4

5

我想过类似的情况。我选择了 sigma.js。

1)你的经验是什么 - 图书馆的好处,弱点?

sigma.js 专门用于图形渲染。d3 是一个完整的可视化工具箱。由于我只想绘制图形,简洁的 sigma.js 界面更易于使用。我认为这是创建者谈论 sigma.js 如何进行增量渲染从而表现更好并平滑处理更多顶点/边缘的视频。

2)我想我想使用 SVG 的画布?(屏幕上有很多小元素)。

sigma.js 渲染到画布上。

以下是sigma.js 示例。“隐藏节点”示例显示了鼠标交互。另外,这里有一篇博文,展示了如何使用用 node.js 编写的极少量数据按摩代码轻松地将 neo4j 与 sigma 集成。将其移植到任何服务器语言都很容易。

于 2013-09-05T12:19:45.217 回答
1

我在该列表中看不到sigma.js,您可能想看看它,因为它非常有用(示例

您将不得不以某种方式处理接收到的数据的呈现(即从数据结构到其可视化表示),这取决于您试图通过该可视化显示/说什么,您想如何做以及您想要的方式它看起来像。

作为起点,我会选择 D3 和 Sigma。

于 2013-09-04T09:15:28.863 回答
0

我注意到 Gephi 不在你的名单上。作为一个独立的可视化器/编辑器,它是我用过的最好的(你只需得到 neo4j 插件,它就会导入数据库的源文件并让你查看它)。它也是开源的,因此您可以将其作为项目的一部分。

于 2014-05-28T09:54:23.380 回答
0

您的列表中还缺少yFiles系列图形可视化库。

if 的 JavaScript 变体同时使用 Canvas、WebGL 和 SVG。这可以同时提供非常好的性能和高质量的可视化。对于毛球状的图形(数以千计的点和线,但可能没有文本),您可以使用 WebGL 和 Canvas,当您放大以实际理解数据时,您可以使用 SVG 获得详细的高质量可视化标签、图标、数据绑定的可视化等。您可以在同一个可视化中使用这两种技术,甚至可以同时使用,从两全其美(演示)中受益。

使用 JavaScript Bolt 驱动程序将 yFiles 连接到 Neo4j很容易。

针对视图中的 400 个元素是一个好主意。虽然较大的图表往往看起来非常漂亮,但大多数时候您不会通过查看“毛球”获得很多见解。这些几乎艺术化的可视化看起来都非常相似,因此几乎没有信息。通常,您也可以显示一个静态图像,显示“毛球图”查询的第一个 google 图像搜索命中 :-)

为了在探索过程中更好地支持用户,应将过滤、分组、嵌套和动态交互添加到查看器应用程序中。这是如何实现的,很大程度上取决于可视化中的业务领域,尽管只有很少的通用方法适用于通用图。

免责声明:我为创建上述可视化库的公司工作。不过,我不代表它。

于 2017-05-17T08:22:06.657 回答