知乎原文地址
Neo4j的设计本质上是非常直观的,使用节点和关系,用户可以轻松地将数据建模为开发人员、数据分析师和 Boss 都非常容易理解的内容。Cypher查询语言还采用ASCII艺术形式进行可视化结构,以使查询构建和维护更易于阅读和扩展。 图可视化通过以各种格式绘制图形来使这些功能更进一步,方便用户以更加友好的方式与数据进行交互。借助可视化工具,展示的图栩栩如生,更能设置各种规则或视图,从不同的角度进行分析。 本文旨在帮助您了解如何使用开源、Neo4j 或合作伙伴提供的多种工具,从 Neo4j 中导出图数据进行可视化展示。每种工具提供的功能各不相同,您可以选择最适合您的,我们还将展示如何使用工具在 Neo4j 中显示数据。
为什么要可视化图?
在没有图的情况下,可以通过多种方式查看 Neo4j 中的数据。您可以将结果以JSON、XML、Table格式返回。那么,为什么有人选择可视化地展示数据呢? 图数据更容易可视化展示,图可视化后能够帮助数据分析人员、业务用户及开发人员极大的提升分析效率。浏览该图的任何人都可以查看连接,确定感兴趣的区域或快速评估数据的当前状态和组织。可以想象,这可以提供其他类型的数据格式无法提供的见解,带来巨大的价值。可视化有助于使异常或相关模式脱颖而出,以帮助人眼和大脑检测到它们,而其他类型的数据格式可能也不会突出显示隐藏的结构。 让我们使用数据建模指南中的电影数据来看一个非常基本的示例。在下面的图表来看,我们可以很容易地挑选出Lana Wachowski导演都Cloud Atlas和The Matrix电影,其中用表格显示数据的方式不够清晰。 即使您觉得以表格形式很难找到这种关系,也可以想象一下,如果我们正在查看一张包含这些人的从影经历以及数百名其他演员、导演和电影摄制组的图表。这些连接很容易在非可视演示中丢失。
Neo4j 可视化工具和产品
Neo4j 具有两个主要的可视化工具,它们是专门为与 Neo4j 图数据库中的数据一起使用而设计的:Neo4j Browser 和 Neo4j Bloom。Neo4j 浏览器是面向开发人员的工具,允许开发人员执行Cypher查询并可视化结果,它是Neo4j数据库的企业版和社区版的默认开发人员界面。Neo4j Bloom是一种商业许可的产品,允许用户使用自然语言浏览其图数据。我们将在这里简要讨论每个关键细节。 Neo4j Browser 如上所述,Neo4j浏览器是现成的,具有Neo4j的所有图数据库产品,包括Neo4j Server(社区版和企业版)和Neo4j Desktop(所有OS版本)。 它的可视化功能旨在响应给定的Cypher查询来显示存储在数据库中的基础数据的节点图表示,从而显示节点的圆和关系的线。Neo4j浏览器还提供了一些基于节点标签和关系类型的颜色和尺寸样式的功能,或者您可以通过导入GRASS(图形样式表)文件以供Neo4j浏览器引用来自定义自己的样式。您还可以使用查询结果窗格上的内置下拉按钮轻松地将数据导出为PNG、SVG或CSV格式。 Neo4j Bloom Bloom 是 Neo4j 的独立可视化产品,可通过商业许可进行访问。此工具是为业务分析人员和其它非开发人员设计的,无需编写任何代码即可与图数据库中存储的数据进行交互。 用户可以使用自然语言查询数据库,并在其图数据中浏览模式、聚类和遍历。还可以创建图的不同解剖(称为透视图),使用户可以查看图数据的不同方面和切片以进行进一步分析。
大多数图可视化工具都属于3种架构类别。我们将针对每种类别讨论如何处理导出的数据,并提供不同体系结构的优缺点。根据可视化需求,这些类别可能会定义一组工具,您可以选择这些工具来实现,以解决您的业务需求。
1、具有内置Neo4j连接的可嵌入工具
这些类型的工具可以作为依赖项包含在应用程序中,并且可以轻松地为您的应用程序和Neo4j配置和设置样式。使用配置属性,每个属性都可以轻松连接到图数据库的实例,并允许您根据节点、关系或特定属性设置可视化样式。 将可视化内容嵌入到应用程序中,使开发人员可以创建将可视化内容作为用户界面一部分的应用程序。这也意味着开发人员可以编写其他组件,并根据实际业务需求自定义相关组件。 需要注意的是,这些库通常不支持极其复杂或繁重的工作负载,并且不具有针对功能请求的供应商支持或SLA。因为它们是由社区管理的,所以这些工具依赖社区来提供支持和功能改进。 让我们看看这个类别中的一些工具。
1)Neovis.js
该库旨在将JavaScript可视化和Neo4j无缝集成。与Neo4j的连接非常简单明了,并且由于它是在Neo4j的属性图模型的基础上构建的,因此 Neovis 的数据格式与数据库保持一致。在单个配置对象中定义基于标签、属性、节点和关系的自定义和着色样式。Neovis.js无需编写Cypher即可使用,并且可以使用最少的JavaScript集成到您的项目中。
Neovis库是 Neo4j Labs 项目之一,要了解有关Neo4j Labs的更多信息,请访问 Neo4j Labs。
您还可以将此库与 Neo4j 中的图算法库结合使用,以对可视化进行样式设置,使其与诸如PageRank、中心性、社区检测等算法的结果保持一致。下面,我们看到 neovis.js 呈现游戏人物权力相互作用的图可视化,并使用 Neo4j 的PageRank和社区检测算法,增强应用的可视化。 使用这些算法增强图可视化的一个优势是,我们可以直观地解释这些算法的结果。 Neovis.js资源: 博客文章:Neovis.js 下载 neovis.js:npm软件包
2)Popoto.js
Popoto.js是一个基于D3.js的JavaScript库。Popoto.js将帮助用户以可视方式构建查询以针对Neo4j执行。用户还可以自定义结果和视觉显示。除了可视化之外,您还可以包括对潜在查询的自动完成搜索,查看从可视化生成的Cypher转换,查看查询的文本结果等等。 要在您的应用程序中使用Popoto.js,您只需要在HTML页面中包括独立绑定到容器ID的每个组件。其余内容将由此生成。 Popoto.js资源
2、无直连 Neo4j 的可嵌入库
这些库提供了在应用程序中嵌入图可视化的功能,但没有直接连接到Neo4j的功能。这样做的好处是,我们可以使用连接到数据库的API应用程序发送的数据填充可视化内容,从而确保客户端应用程序不直接查询数据库。但是,需要注意的是,我们必须转换结果,将它们从Neo4j导出为这些库期望的格式。 在接下来的段落中,我们将进一步探讨这些工具。
1)D3.js
D3网站的第一行指出 ”D3.js是一个JavaScript库,用于基于数据处理文档。” 您可以将不同种类的数据绑定到DOM,然后在其上执行不同种类的功能。这些功能之一包括根据DOM中的数据生成SVG,画布或HTML可视化。 Neo4j的电影示例应用程序使用d3.js,并且您可以使用Neo4j和d3找到许多其他项目。D3(或没有直接Neo4j连接的任何可嵌入库)的复杂部分是将图数据转换为预期的映射格式以进行导出。D3期望图数据有两个不同的集合–一个用于node [](节点),一个用于link [](关系)。这些映射中的每一个都包含每个节点的属性数组,和d3将其转换为圆和直线的关系。d3.js的第4版和第5版还支持力导向图,其中可视化效果会根据用户的视图窗格进行调整。 D3.js资源
2)Vis.js
该库提供了旨在处理大型动态数据集的各种可视化效果。可以使用多种格式来设置数据样式,包括时间轴、数据集、graph2d、graph3d和网络。Neo4j最常见的格式是网络可视化。 即使使用网络格式,也有许多可用于样式节点、标签、动画、着色、分组等的自定义项。有关其他信息并查看所有可用信息,请查看下面的资源中链接的文档和示例。 Vis.js资源
- Vis.js网站:Vis.js
- 网络格式示例:格式示例
- 源代码项目:Vis.js Github
3)Sigma.js
尽管某些库旨在将所有功能捆绑在一起,但Sigma.js却宣称其高度可扩展的环境中,用户可以在其中添加扩展库或插件来提供附加功能。该库采用JSON或GEXF格式导出的数据。
用户可以从开箱即用的非常基本的可视化开始,然后开始添加自定义功能和呈现样式首选项。一旦需求超出了可能的范围,用户就可以编写和使用自己的自定义插件来实现特定功能。 Sigma.js资源
- 网站:Sigma.js
- 源代码:Sigma.js Github
- 博客文章:Sigma.js + Neo4j
4)Vivagraph.js
Vivagraph.js的构建旨在处理用于布置节点和边的不同类型的布局算法。它可以管理从很小到很大的数据集大小,还可以呈现基于WebGL、SVG和CSS的格式。可通过CSS修改和扩展库获得自定义和样式。它还可以跟踪图形中的更改,从而相应地更新可视化。 Vivagraph.js资源
- 源代码:Vivagraph.js Github
- 博客文章:Viavgraph.js + Neo4j
5)Cytoscape.js
该库用于可视化和渲染网络节点图,并为其它功能提供自定义和可扩展性。Cytoscape.js响应用户交互并在触摸屏界面上工作,从而允许用户以与其相关的方法进行缩放、点击和浏览。您可以使用各种样式组件来自定义样式和网页视图。 Cytoscape.js资源
- 网站:Cytoscape.js
- 源代码:Cytoscape.js Github
3、独立的产品工具
某些工具和产品被设计为独立的应用程序,可以连接到 Neo4j 并与存储的数据进行交互,而无需任何代码。这些应用程序的构建是出于非开发人员的考虑–业务分析师、数据科学家、经理和其他用户可以通过节点图格式与Neo4j进行交互。 其中许多工具都涉及商业许可和支持,但可以根据您的用例和自定义要求进行专门配置。他们还需要很少或不需要开发人员集成时间和设置。 以下内容将帮助我们了解这些产品类型。
1)GraphXR
GraphXR是一个完全基于 Web 的可视化平台,用于交互式分析。对于专业用户而言,这是进行临时分析的高度灵活且可扩展的环境,对于企业用户来说,这是一个无需代码即可进行分析和洞察的直观工具。
- 从Neo4j、SQL数据库、CSV和Json收集数据;
- 使用内置工具和API调用进行清理和扩展;
- 分析链接、属性、时间序列和空间数据;
- 保存至 Neo4j,作为报告输出,或嵌入到您的网页中。
GraphXR 支持广泛的应用程序,包括执法、医学研究和知识管理。 Kineviz还具有此工具的图形应用程序版本,可以安装在Neo4j Desktop中。下面的资源中包含有关graph应用程序的博客文章。 GraphXR资源
- 博客文章:在Neo4j Desktop中将GraphXR添加为Graph应用程序
- 博客文章:使用Neo4j、GraphXR和MLl评估投资者绩效
- 产品信息:GraphXR 数据表
2)yFiles
yWorks借助yFiles(一系列高质量的商业软件编程库)提供了图可视化、图表和网络的复杂解决方案。yFiles库使您可以轻松创建由Neo4j支持的复杂的基于图的应用程序。它们以最高的质量和性能支持最广泛的桌面和Web技术以及布局算法。凭借广泛的可扩展性和大型功能集,可以满足您所有的可视化需求。 yWorks还提供了一个基于yFiles技术的免费图浏览器应用程序。可以将其安装在Neo4j Desktop中。 yFiles资源
- 博客文章:yFiles和Neo4j的自定义可视化解决方案
- 博客文章:像Pro一样可视化Neo4j数据库
- 网络研讨会:Neo4j的yFiles技术介绍
- 产品信息:yFiles可视化库
3)Linkurious Enterprise
Linkurious Enterprise 是一个浏览器的平台,可在图数据库之上运行。它为负责检测和分析大量连接数据中的威胁的分析师提供了图可视化和分析功能。法国经济和财政部、苏黎世保险或蒙特利尔银行等组织使用Linkurious Enterprise打击金融犯罪、恐怖网络或网络威胁。 Linkurious资源
- 博客文章:使用Neo4j和Linkurious进行巴拿马论文发现
- 博客文章:使用Neo4j和Linkurious进行欺诈检测
- 博客文章:使用Neo4j和Linkurious检测和调查金融犯罪
- 网络研讨会:如何使用Linkurious可视化Neo4j
- 解决方案:Linkurious Enterprise + Neo4j
- 产品数据表:Linkurious Enterprise
4)Graphistry
可视化为大数据和复杂数据的时代带来了人机界面。它会自动将您的数据转换为交互式的、可视化的图,以满足分析师的需求。快速显示事件与实体之间的关系,而无需编写查询或整理数据。利用您的所有数据而不必担心规模,并随时随地进行跟踪洞察。 从安全性、欺诈和IT调查到3600个客户和供应链视图,Graphistry都是理想的选择,它将您的数据潜力转化为人的洞察力和价值。 Graphistry资源
- 源代码:Github上的Graphistry
- 产品信息:图形图形可视化
5)Perspectives
Tom Sawyer Perspectives是用于构建企业级图和数据可视化与分析应用程序的强大平台。它是一个完整的图可视化软件开发套件(SDK),具有基于图的设计和预览环境。该平台将企业数据源与强大的图可视化、布局和分析技术集成在一起,以解决大数据问题。企业、系统集成商、技术公司和政府机构使用Tom Sawyer Perspectives构建了广泛的应用程序。 Perspectives资源
- 产品信息:Perspectives 图可视化
6)Keylines
KeyLines使您可以轻松快速地构建和部署高性能网络可视化工具。您可以定制应用程序的各个方面,以适合您、您的数据和需要回答的问题。KeyLines应用程序可在任何设备和所有通用浏览器上运行,以覆盖需要使用它们的每个人。它还与任何IT环境兼容,使您可以将网络可视化应用程序部署到无限数量的不同用户中。您可以构建可扩展且易于使用的自定义应用程序。 Keylines资源
- 产品信息:Keylines 图可视化
可视化资源
- 博客系列:Neo4j可视化
- 博客:Max de Marzi关于Neo4j的可视化
- Neo4j视觉效果:YouTube视频
知乎原文地址
更多技术咨询:
联系人:于先生 Email:yusonglin@we-yun.com 微信号:ysllong_0226 微云数聚网址:www.we-yun.com