作者:刘洋,Neo4j 高级技术顾问
前言
关于Neo4j图数据的可视化一直是大家很感兴趣的一个话题。当分析图数据时,我们意识到要创建一个直观的图可视化并不是那么容易。值得庆幸的是,当前已经拥有了大量的现成工具,使图可视化可以很容易的创建在您的图应用中。
在这篇文章中,我们将常用的图可视化工具按照功能和应用场景进行分类介绍,希望您读完这篇文章后对图可视化有一个大致的了解,并对今后选择适合您业务场景的图可视化工具有所帮助。
图可视化工具的分类
所有的图可视化工具都有他的应用场景和目标用户群定位,按照功能和应用场景我们可以把图可视化工具分为以下四大类:
- 开发工具,帮助开发人员开发图可视化
- 探索工具,帮助分析人员探索图数据关系
- 分析工具,用于揭示图数据中趋势和差异
- 报告工具,用于创建和组织图数据报告,如可视化报表、仪表盘等
在下图中,我们按以上类别分类显示了一些市面上常见的图可视化工具。在纵轴上按产品类型进行了分类(分为Neo4j产品、社区项目和企业软件)。
需要注意的是,有些工具功能可能属于两个类别,这种情况下该工具可以用于两个类别的场景,所以这个分类仅供参考。另外,第三方的企业软件可能需要购买对应工具的license许可。
接下来,让我们深入了解这些图可视化工具的具体情况。
1. Neo4j Browser (开发工具)
Neo4j Browser大家都不会陌生了,它是Neo4j图数据库开发人员运行Cypher查询的工具,它可以让您以图或表格的形式呈现查询结果。虽然可视化能力有限,但我们每天都会用它来快速设计和优化Cypher查询。
主要特点:
- 容易上手,但可视化和风格选择有限
- 直接查询您的图数据,但需要Cypher知识
- 适合快速查询开发,但没有保存/嵌入/共享可视化的功能
2. Neo4j Bloom (探索 &分析工具)
Neo4j Bloom是一个用于交互式探索Neo4j图数据的工具。Neo4j Browser主要由开发人员使用,而Bloom更适合数据分析师——那些想要动态可视化图数据和交互图数据的用户。Bloom支持基于文本的搜索,没有Cypher知识的业务用户也可以容易的分析和探索Neo4j图数据。
主要特点:
- 点击和拖拽即可探索图数据
- 通过自定义样式来可视化大规模图数据
- 用可视化界面编辑(修改)您的Neo4j图数据
- 存储和分享图分析结果视图
- 渲染不同的图布局
3. Neovis.js (开发工具)
Neovis.js是一个JavaScript库,帮助开发者使用Neo4j图数据创建图可视化。Neovis.js是流行的库Vis.js的封装,在Cypher和浏览器中定制图可视化之间提供了一座桥梁。
主要特点:
- JavaScript库(基于Vis.js)用于创建Neo4j图可视化
- 直接连接到Neo4j实例以获得实时数据
- 基于标签、属性或社区的用户指定的样式属性
- 支持节点的悬停/点击等功能
4. Popoto.js (开发工具)
Popoto.js是另一个社区驱动的JS库,用于创建可嵌入的图可视化内容。Popoto.js基于被广泛使用的D3.js库,支持大量的图可视化内容。它还包含一个用于Neo4j的互动和可定制的图可视化查询生成器。网上有大量关于如何使用Popoto的例子,以及如何用自定义样式扩展它。
主要特点:
- 一个交互式的可视化Cypher查询生成器,可与Neo4j直接连接
- 可嵌入到网页中,并有各种例子可供借鉴
- 由广泛使用的D3.js可视化库支持
- 通过扩展实现自定义风格设计
5. KeyLines (开发工具)
KeyLines是一个用于在JavaScript中构建图可视化的企业库。与neovis.js和popoto.js相比,KeyLines有更多的功能(布局、样式、分组、过滤),并且在大型图上有很好的表现。KeyLines是一个企业专用的产品,为其他一些独立的图探索工具(如GraphAware Hume)提供支持。
主要特点:
- 用于高级图可视化的JavaScript库
- 支持基于时间的分析,地理空间图分析,社交网络分析等
- 支持地理(地图)可视化
- 自定义图的布局(分组)和风格
- 高性能的WebGL渲染
6. CytoScape (开发工具)
CytoScape是一个最初用于可视化生物网络的工具,但它最近被用于各种网络分析的用途。CytoScape.js 是一个用于图可视化的开源Javascript库,它是迄今为止最广泛的图可视化开源库——支持图布局、高级样式设计、事件处理等。
主要特点:
- 高度优化的图渲染
- 使用布局来自动或手动定位节点
- 自定义风格设计
- 易于嵌入到网络应用程序中
- 开放源代码,易于扩展自定义功能
7. yWorks Neo4j Explorer (探索工具)
yWorks