在 Neo4j 中可视化您的数据
本节介绍图可视化工具选项,以及如何使用可视化工具从您的数据中获取洞察。
Neo4j 的设计本质上非常直观。像 Neo4j 这样的原生图数据库专注于关系。可视化这些关系可以为您数据的“全局视图”提供独特的视角,而这在使用传统的表格和商业智能软件包时很难或无法获得。
图可视化通过以各种格式绘制图形将这些功能更进一步,以便用户能够以更友好的方式与数据进行交互。借助可视化工具,可以使完整或部分图形栩栩如生,并允许用户进行探索,设置各种规则或视图,以便从不同的角度对其进行分析。
本节旨在帮助您了解如何在 Neo4j 中导出您的图形数据以显示为可视化,并列出选项,以便您可以选择最适合您需求的选项。
为什么要可视化图形?
您有许多选项可用于处理数据;JSON、XML、表格等。为什么要以图形方式呈现它们?
任何查看图形的人都可以看到连接,确定感兴趣的区域,或快速评估数据的当前状态和组织。如您所想,这可以提供其他类型的数据格式无法提供的洞察,带来巨大的价值。可视化有助于使异常或相关模式脱颖而出,以帮助人类的眼睛和大脑检测它们,而其他类型的数据格式可能无法像这样突出显示隐藏的结构。
让我们使用前面数据建模部分指南中的电影数据来查看一个非常基本的示例。在上面的图形视图中,我们可以很容易地看出Lana Wachowski
导演了Cloud Atlas
和The Matrix
两部电影,而在表格表示中,这些信息并不那么清晰或容易找到。
即使您觉得表格格式中关系并不难找到,想象一下,如果我们查看的图形包含这些人的全部电影作品,以及数百位其他演员、导演和电影工作人员。连接可能会很容易丢失在非可视化演示中。
Neo4j 可视化工具和产品
Neo4j 拥有两个主要的可视化工具,它们是专门为 Neo4j 的图数据库中的数据而构建和设计的:Neo4j 浏览器和Neo4j Bloom。我们将在下面简要讨论每个工具的关键细节。
Neo4j Bloom
Bloom 是一款独立的专注于可视化的产品,它与每个AuraDB 实例一起提供,并且可以与 Neo4j 桌面一起使用。它专为业务分析师和其他非开发人员而设计,让他们无需编写任何代码即可与图形数据进行交互。
用户可以使用自然语言查询数据库,并探索图形数据中的模式、集群和遍历。还可以创建图形的不同剖析(称为透视),这些剖析允许用户查看图形数据的不同方面和切片,以便进行进一步分析。
Neo4j 浏览器
Neo4j 浏览器是面向开发人员的交互式 Cypher® 命令外壳,它允许您与图形进行交互并可视化其中的信息。Neo4j 浏览器与 Neo4j 捆绑在一起,并在所有版本和版本的 Neo4j 中可用。
它的可视化功能旨在显示数据库中存储的底层数据的节点-图形表示形式以响应给定的 Cypher 查询,显示节点的圆圈和关系的线条。Neo4j 浏览器还提供了一些根据节点标签和关系类型进行颜色和大小样式的功能,或者您可以通过导入 GRASS(图形样式表)文件供 Neo4j 浏览器参考来自定义自己的样式。您还可以使用查询结果窗格上的内置下拉按钮轻松将数据导出为PNG、SVG 或 CSV 格式。
图形数据的替代可视化
并非所有图形可视化都以圆圈和线条形式表示节点和关系。用户可能希望以各种基于图表、基于地图或 3D 格式查看数据。
基于图表的可视化
以熟悉的图表格式(如条形图、直方图、饼图、表盘、仪表和其他表示形式)查看数据可能更适合各种用户和业务需求。有一些工具支持这些类型的图表,用于指标和仪表盘。
有几个可用的开源工具,但我们将提到几个我们之前使用过的带有链接的工具。随意探索其他工具!
Tableau
Tableau 是一种数据分析工具,它可以获取来自各种来源的数据,并根据用户规范对数据进行混合或拆分。使用Neo4j Connector for BI,您可以像连接任何其他 SQL 数据库一样,在 Neo4j 和 Tableau 之间建立连接,并直接可视化数据。
数据在 Tableau 中后,用户可以使用拖放式 Tableau GUI 将数据的各种组合聚合、拼接和样式化为各种格式的彩色可视化。
Chart.js
博客文章:图表 Neo4j
Nivo
博客文章:Neo4j 空间与 Nivo 图表
基于地图的可视化
图形数据非常适合映射和表示地理数据,因为它由实体和连接(位置/点和到达这些位置的路线)构成。Neo4j 可以帮助绘制经纬度、多边形几何图形、路线以及距离,因此,在前端将地图可视化叠加到这些数据上的工具为交互和探索区域提供了极大的价值。
Tom Sawyer 和 Keylines 的商业工具也支持这种类型的可视化。
Leaflet.js 是一个开源库,它允许我们创建多个图层并显示/隐藏各种图层。它旨在具有交互性并在移动电话以及传统设备上运行。您可以使用各种插件(包括 Mapbox)来扩展功能。借助这些工具,您可以创建一个底层地图图层(例如地图瓦片),并且数据可视化将实时显示在地图瓦片上绘制的图层中。Mapbox 还使您可以添加交互式地图。
Leaflet.js 资源
-
Leaflet.js 网站:Leaflet.js
-
博客文章: 使用 Leaflet.js 可视化天堂文件数据
-
博客文章: 在 React.js 应用程序中使用 Leaflet.js 和 Mapbox 可视化 Neo4j 中的空间数据
-
示例源代码: Leaflet/Mapbox 空间 Neo4j
-
示例源代码: Leaflet/Mapbox 交互式地图
热力图可视化
热力图是一种数据可视化,使用颜色来表示数据值。它通常被叠加到地图上,但也可以叠加到矩阵上。当热力图用在地图上时,活动区域可能分散,因此通常使用某种插值方法。
我们将列出我们迄今为止遇到的工具,但随着我们与更多工具的交互,我们将继续添加更多工具。
-
Leaflet.js 插件
-
博客文章: Leaflet.js heatcanvas 插件
-
3D 可视化

添加第三维可能会增加可视化中的某些复杂性,但也增加了价值。在 3D 中探索您的数据可以帮助您更好地、更清晰地浏览大量数据。聚类在 3D 可视化中也应该更加明显,因为在使用第三维时,数据可以更加分散,而 2D 可能会导致组重叠或显示得更紧密。
Kineviz(商业工具)也支持这种类型的可视化。
借助这个开源库,有几个不同的组件用于处理三维背后的物理学以及实际渲染可视化。它使用迭代方法进行 3D 渲染,并创建令人惊叹的交互式可视化。该工具包括用于自定义节点和关系样式的功能,以及容器布局、渲染控件、配置模拟和用户交互。所需的数据结构类似于我们之前看到的工具,具有节点和关系集合。3d-force-graph 还提供功能来创建可视化以用于虚拟现实。
3d-force-graph 资源
-
作者文章: 示例
-
博客文章: 在 3D 中可视化图