图可视化工具

图可视化的类型

大多数图可视化工具可归纳为三种架构类别。您将了解这些类别如何处理导出的数据,并了解不同架构的优缺点。根据可视化需求,其中一个类别可能决定了您为满足业务需求而选择的工具集。

1. 独立产品工具

某些工具和产品被设计为独立应用程序,无需编写代码即可连接到 Neo4j 并与存储的数据进行交互。这些应用程序专为非开发人员而构建,旨在让业务分析师、数据科学家、经理和其他用户以节点图格式与 Neo4j 进行交互。

其中许多工具涉及商业许可和技术支持,但可以根据您的用例和自定义需求进行配置。它们几乎不需要或完全不需要开发人员投入时间进行集成和设置。

以下段落将帮助您了解该领域的产品类型。

Neo4j Bloom

Neo4j Bloom 是一款数据探索工具,它可视化图中的数据,并允许用户在无需任何查询语言或编程的情况下导航和查询数据。

用户可以编写类似于自然语言问题的模式来检索数据并遍历图的层级。当发现缺失信息或错误数据时,Bloom 还允许授权用户编辑、更新或更正图数据。

Neo4j Bloom 可通过以下形式获取:

  • Neo4j Bloom 本地版:用户通过 Neo4j Desktop 访问 Bloom(本地数据库实例免费)

  • Neo4j Bloom 服务器版:用户通过 Web 浏览器访问 Bloom

  • 通过 sandbox 试用 Neo4j Bloom

  • 通过 Neo4j 数据库即服务 AuraDB 使用 Neo4j Bloom

  • 包含在 Neo4j 初创企业计划

Bloom 资源

NeoDash

NeoDash 是一个面向 Neo4j 的开源、低代码仪表板构建器。作为 Neo4j Labs 的一部分,NeoDash 通过在线 社区 进行开发和支持。

NeoDash 让您能够使用表格、图形、柱状图、折线图、地图等构建交互式仪表板。仪表板可以直接从您的 Neo4j 数据库保存和共享。

  • 具有拖放界面的低代码仪表板构建器

  • 直接从 Cypher® 创建可视化

  • 能够向仪表板添加自定义功能和交互性

  • 构建并发布供只读访问的仪表板

NeoDash 资源

GraphXR

GraphXR 是一个全流程的、基于 Web 的交互式分析可视化平台。对于技术用户,它是一个高度灵活且可扩展的环境,用于进行即兴分析。对于业务用户,它是一个无需编写代码即可进行调查和获取见解的直观工具。

  • 从 Neo4j、SQL 数据库、CSV 和 JSON 中收集数据。

  • 使用内置工具以及 API 调用进行清洗和丰富数据。

  • 在统一的动画上下文中分析链接、属性、时间序列和空间数据。

  • 保存回 Neo4j,导出为报告,或嵌入到您的网页中。

GraphXR 支持广泛的应用领域,包括执法、医学研究和知识管理。

Kineviz 还提供了该工具的图应用程序版本,可以安装在 Neo4j Desktop 中。关于该图应用程序的博客文章已包含在下方的资源中。

yFiles

yWorks 提供了一系列用于图、图表和网络可视化的复杂解决方案,即 yFiles,这是一套高质量的商业软件编程库。yFiles 库使您能够轻松创建由 Neo4j 驱动的复杂图应用程序。它们支持最广泛的桌面和 Web 技术及布局算法,具有极高的质量和性能。凭借广泛的扩展性和丰富的功能集,可以满足您所有的可视化需求。

yWorks 还提供了一个基于 yFiles 技术的免费图探索应用程序。它可以安装在 Neo4j Desktop 中。

Linkurious Enterprise

Linkurious Enterprise 是一个基于本地部署和浏览器的平台,在图数据库之上运行。它为负责在大量互联数据中检测和分析威胁的分析师提供了图可视化和分析功能。法国经济财政部、苏黎世保险或蒙特利尔银行等组织使用 Linkurious Enterprise 来打击金融犯罪、恐怖网络或网络威胁。

GraphAware Hume

GraphAware Hume 是一个政府级数据分析平台,用于快速、直观的情报分析。从用户界面到数据库,GraphAware Hume 是独特且以图为中心的,通过无需编写代码的 UI 展示了 Neo4j 的全部功能。

GraphAware Hume 通过可配置的数据工作流摄取并连接结构化和非结构化数据源。它支持流式和批量处理,以建立统一且最新的“单一事实来源”。

随着更多情报源的集成,可以创建专门的图来支持不同类型的分析。分析师可以利用图数据科学来了解网络中节点的重要性、预测链接并设置基于图的自动化警报。

GraphAware Hume 附带强大的部署选项(包括容器化和离线部署)、强大的安全功能(如 SSO、RBAC 和审计日志)、高可用性、备份功能以及开放标准和 API,确保不被供应商锁定,并拥有对图解决方案的完全所有权。

GraphAware Hume 资源

Graphistry

Graphistry 为大数据和复杂数据时代带来了人性化的界面。它会自动将您的数据转换为专为分析师需求构建的交互式视觉调查图。无需编写查询或处理数据,即可快速浮现事件和实体之间的关系。充分利用您的所有数据而无需担心规模问题,并随时进行数据透视,以追踪您的调查方向。

Graphistry 非常适合从安全、欺诈和 IT 调查到客户和供应链 360 度视图的各种应用,它将数据的潜力转化为人类的见解和价值。

Graphistry 资源

Graphlytic

Graphlytic 是一个高度可定制的 Web 应用程序,用于图可视化和分析。用户可以交互式地探索图,使用 Cypher 语言查找模式,或使用过滤器回答任何图查询问题。图渲染使用 Cytoscape.js 库完成,这使得 Graphlytic 能够渲染数万个节点和数十万个关系。

该应用程序以三种方式提供:Desktop(桌面版)、Cloud(云版)和 Server(服务器版)。Graphlytic Desktop 是一个免费的 Neo4j Desktop 应用程序,只需点击几下即可安装。Cloud 实例非常适合需要在极短时间内上手的小型团队。Graphlytic Server 由拥有高度敏感数据(通常在封闭网络中)的企业和机构使用。

Perspectives

Tom Sawyer Perspectives 是一个强大的平台,用于构建企业级图和数据可视化及分析应用程序。它是一个完整的图可视化软件开发工具包(SDK),具有图形化的设计和预览环境。该平台将企业数据源与强大的图可视化、布局和分析技术集成,以解决大数据问题。企业、系统集成商、科技公司和政府机构使用 Tom Sawyer Perspectives 构建了各种各样的应用程序。

Perspectives 资源

Keylines

KeyLines 让构建和部署高性能网络可视化工具变得简单快速。应用程序的各个方面都可以根据您、您的数据以及您需要回答的问题进行定制。KeyLines 应用程序可以在任何设备和所有常用浏览器上运行,从而覆盖所有需要使用它们的用户。它还兼容任何 IT 环境,让您可以将网络可视化应用程序部署到无限数量的多样化用户手中。您可以构建一个可扩展且易于使用的自定义应用程序。

Keylines 资源

Semspect

SemSpect 是一款高度可扩展的知识图谱探索工具,使用视觉聚合来解决标准图可视化方法中面临的“乱麻(hairball)”问题。探索树的数据引导式构建使用户能够在无需查询语法的情况下直观地构建复杂的请求。它的元层方法对于掌握图数据的整体结构非常有效,同时灵活地访问节点和关系详情确保了易于检查和过滤。SemSpect 此外还允许在探索过程中定义基于查询的节点标签,以优化图数据模式。

SemSpect 提供以下获取方式:

  • SemSpect 作为 Neo4j Desktop 的图应用程序(本地数据库实例免费)

  • SemSpect 作为 Neo4j 数据库服务器的 Web 应用程序

Semspect 资源

可视化资源

2. 具有内置 Neo4j 连接的嵌入式工具

此类工具可以作为依赖项包含在应用程序中,并可以轻松地为您的应用程序和 Neo4j 进行配置和样式设置。每一个都可以使用配置属性轻松连接到图数据库实例,并允许您根据节点、关系或特定属性设置可视化样式。

在应用程序中嵌入可视化允许开发人员创建将可视化作为用户界面一部分的应用程序。这也意味着开发人员可以编写其他组件,并根据确切的业务需求定制应用程序体验以及应用程序中涉及的其他组件。

缺点是,这些库通常不支持极其复杂或繁重的工作负载,并且没有用于功能请求的供应商支持或 SLA。因为它们由社区维护,所以工具的持续支持和功能改进依赖于社区。此外,这通常意味着客户端应用程序直接连接到数据库,这可能并非总是理想的架构。

让我们看看该类别中的一些工具。

Neovis.js

该库旨在将 JavaScript 可视化与 Neo4j 无缝集成。连接到 Neo4j 非常简单直接,而且由于它在设计时就考虑了 Neo4j 的属性图模型,Neovis 期望的数据格式与数据库是一致的。基于标签、属性、节点和关系自定义和着色样式是在单个配置对象中定义的。Neovis.js 可以在无需编写 Cypher 且只需极少量 JavaScript 的情况下集成到您的项目中。

Neovis 库是我们 Neo4j Labs 的项目之一。要了解有关 Neo4j Labs 的更多信息,请访问我们的 Labs 页面

为了通过可视化最大化功能和数据分析能力,您还可以将此库与 Neo4j 中的图算法库结合使用,以设置可视化样式,使其与 PageRank、中心性、社区等算法的结果保持一致。在下面,我们看到由 neovis.js 渲染的《权力的游戏》角色交互的图可视化,并通过应用 pagerank社区检测 算法来增强可视化样式。

使用这些算法增强图可视化的一个优点是,我们可以直观地解释这些算法的结果。

Neovis.js 资源

Popoto.js

Popoto.js 是一个基于 D3.js 构建的 JavaScript 库。Popoto.js 将帮助用户以可视化的方式构建查询以针对 Neo4j 执行。用户还可以自定义结果和视觉显示。除了可视化之外,您还可以包含针对潜在查询的自动完成搜索、查看从可视化生成的 Cypher 转换、查看查询的文本结果等。

要在您的应用程序中使用 Popoto.js,您只需将每个组件独立绑定到 HTML 页面中的容器 ID 即可。其余内容将由此生成。

Popoto.js 资源

3. 无直接 Neo4j 连接的嵌入式库

这些库提供了在应用程序中嵌入图可视化的能力,但不会直接连接到 Neo4j。此处的一个优点是,您可以使用从连接到数据库的 API 应用程序发送的数据来填充您的可视化,从而确保客户端应用程序不会直接查询数据库。然而,缺点是您通常必须转换从 Neo4j 导出的结果,以符合这些库所期望的格式。

您将在下一段中更仔细地了解这些工具。

Neo4j 可视化库 (NVL)

NVL 是一系列库,可用于构建自定义图可视化,例如 Neo4j Bloom 和 Aura 控制台中的 Explore 所使用的可视化。NVL 使用 TypeScript 编写,可在任何 JavaScript 项目中使用。它也作为 React 组件提供,可在 React 应用程序中使用。

NVL 资源

D3.js

正如 D3 网站上的第一行所说:“D3.js 是一个用于基于数据操作文档的 JavaScript 库。”您可以将各种数据绑定到 DOM,然后对其执行各种函数。这些函数之一包括根据 DOM 中的数据生成 SVG、画布或 HTML 可视化。

Neo4j 的电影示例应用程序使用 d3.js,您可以找到各种其他使用 Neo4j 和 d3 的项目。D3(或任何没有直接 Neo4j 连接的嵌入式库)复杂的部分是将您的图数据转换为导出的预期映射格式。D3 需要两组不同的图数据集合 - 一组用于 nodes[],一组用于 links[](关系)。这些映射中的每一个都包括每个节点和关系的属性数组,d3 然后将其转换为圆和线。D3.js 的版本 4 和 5 还支持力导向图,其中可视化会根据用户的视图窗格进行调整。

D3.js 资源

Vis.js

该库提供了多种旨在处理大型、动态数据集的可视化效果。有多种格式可用于设置数据样式,包括时间轴、数据集、graph2d、graph3d 和网络。在 Neo4j 中看到的最常见格式是网络可视化。

即使使用网络格式,也有大量可用的自定义选项用于设置节点、标签、动画、着色、分组等的样式。有关更多信息并查看所有可用内容,请查看下面资源中链接的文档和示例。

Vis.js 资源

Sigma.js

虽然有些库旨在将所有功能包含在一个包中,但 Sigma.js 宣称其环境高度可扩展,用户可以添加扩展库或插件以提供额外功能。该库以 JSONGEXF 格式获取导出的数据。

用户可以直接开箱即用地从非常基本的可视化开始,然后开始添加自定义函数和渲染以满足样式偏好。当需求超过该处可能实现的功能时,用户可以编写并使用自己的自定义插件来获得特定功能。不过,请务必查看存储库以获取任何现有的扩展!

Sigma.js 资源

Vivagraph.js

Vivagraph.js 旨在处理用于排列节点和边的不同类型的布局算法。它管理从非常小到非常大的数据集大小,并以 WebGL、SVG 和基于 CSS 的格式进行渲染。通过 CSS 修改和扩展库可以使用自定义和样式设置。它还可以跟踪图中更新可视化效果的更改。

Vivagraph.js 资源

Cytoscape.js

此库也旨在可视化和渲染网络节点图,并提供用于附加功能的自定义和扩展性。Cytoscape.js 响应用户交互并可在触摸屏界面上工作,允许用户以与他们相关的方式进行缩放、点击和探索。您可以使用各种样式组件自定义样式和网页视图。

Cytoscape.js 资源