图可视化工具

图可视化的类型

大多数图可视化工具都属于三个架构类别。我们将讨论每个类别如何处理导出数据,并提供不同架构的一些优缺点。根据可视化需求,其中一个类别可能会定义您可以选择作为解决方案来满足业务需求的工具集。

1. 独立产品工具

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

许多这些工具都涉及商业许可证和支持,但可以根据您的用例和自定义要求进行特定配置。它们还几乎不需要开发人员集成时间和设置。

接下来的段落帮助我们了解该领域的产品类型。

Neo4j Bloom

Neo4j Bloom 是一款数据探索工具,可以可视化图中的数据,并允许用户在没有任何查询语言或编程的情况下浏览和查询数据。

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

Neo4j Bloom 提供以下格式

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

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

  • 通过 沙盒 使用 Neo4j Bloom

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

  • 包含在 Neo4j 初创企业计划

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 来打击金融犯罪、恐怖网络或网络威胁。

Graphistry

Graphistry 为大型复杂数据时代带来了人机界面。它会自动将您的数据转换为交互式可视化调查地图,以满足分析师的需求。无需编写查询或整理数据即可快速展现事件和实体之间的关系。利用所有数据,无需担心规模问题,并可以随时切换以跟踪调查的任何方向。

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

Graphistry 资源

Graphlytic

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

该应用程序以三种方式提供:桌面版、云端版和服务器版。Graphlytic 桌面版是一个免费的 Neo4j Desktop 应用程序,只需点击几下即可安装。云端实例非常适合需要快速启动和运行的小型团队。Graphlytic 服务器版用于具有高度敏感数据的公司和机构,通常位于封闭网络中。

Perspectives

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

Perspectives 资源

Keylines

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

Keylines 资源

Semspect

SemSpect 是一款高度可扩展的知识图谱探索工具,它使用视觉聚合来解决标准图形可视化方法面临的“毛线团”问题。数据引导的探索树构建使用户能够直观地构建复杂的请求,无需查询语法。其元级方法对于掌握图形数据的整体结构非常有效,而对节点和关系详细信息的灵活访问确保了轻松的检查和过滤。此外,SemSpect 允许在探索期间定义基于查询的节点标签以细化图形数据模式。

SemSpect 可按以下方式使用:

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

  • Neo4j 数据库服务器的 SemSpect 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 渲染的《权力的游戏》角色交互图形可视化,并使用 Neo4j 图形算法通过应用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 导出的结果转换为这些库期望的格式。

我们可以在接下来的段落中更详细地了解这些工具。

D3.js

正如 D3 网站上的第一行所说,“D3.js 是一个用于基于数据操作文档的 JavaScript 库。”您可以将不同类型的 数据绑定到 DOM,然后在其上执行不同类型的函数。其中一个函数包括根据 DOM 中的数据生成 SVG、canvas 或 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 资源