15款必备Python知识图谱绘制工具推荐

本文总结了15款强大的Python工具,助力绘制知识图谱,有效展示复杂数据关系。

原文标题:精选:15款顶尖Python知识图谱(关系网络)绘制工具,数据分析的强力助手

原文作者:数据派THU

冷月清谈:

本文介绍了15款优秀的免费工具,适用于绘制知识图谱或关系网络,这些工具能够帮助用户简化复杂数据的可视化。文章中提及的工具包括NetworkX、Graph-tool、Graphviz、Cytoscape及其相应的Jupyter版本、Sigma.js以及与Python的多种结合应用,方便用户在不同环境下生成和修改网络图。每种工具都有其独特的功能,如快速处理图数据、交互式可视化以及兼容多种编程语言,为数据分析和科学研究提供了强力支持。这些工具不仅适合数据科学家,也面向广泛的开发者和研究人员,旨在提升图数据的分析和展示能力。

怜星夜思:

1、你认为哪款工具适合初学者使用?
2、使用知识图谱有哪些实际应用场景?
3、有没有考虑工具之间的兼容性问题?

原文内容

图片
来源:DeepHub IMBA

本文约1200字,建议阅读5分钟

本文将介绍15个很好用的免费工具,可以帮助我们绘制网络图。


知识图谱(关系网络)可以用简单的形状和线条显示复杂的系统,帮助我们理解数据之间的联系。我们今天将介绍15个很好用的免费工具,可以帮助我们绘制网络图。


NetworkX


NetworkX是一个用于处理网络的Python工具。许多人在Python中处理图数据时使用NetworkX。它也是许多图AI工具的基础。


GitHub: https://github.com/networkx/networkx


Graph-tool


Graph-tool是一个用于处理网络的Python包。它可以:处理图数据,并且进行计算。Graph-tool不同于其他Python工具。它的主要部分是用c++编写的,所以它非常快,并且使用内存的更少。

https://graph-tool.skewed.de/static/doc


Graphviz


Graphviz使绘制图形变得容易。像一些pytorch的可视化库,还有xgboost等树型模型的可视化都是用了这个库。


https://graphviz.org/


ipycytoscape


Cytoscape是一个查看和处理复杂网络的免费工具。它始于研究生物的科学家,但现在每个人都可以使用。


js是它的网页版本,ipy则是在Jupyter notebook中使用的版本。它可以让熟悉Pandas、NetworkX和NumPy等Python工具的人在notebook中显示网络数据,并通过简单的步骤更改其外观。


https://github.com/cytoscape/ipycytoscape


ipydagred3


Dagre是一个JavaScript的工具,它与一个名为dagre3 -d3的前端工具一起工作,该工具使用D3JS来显示箭头。而ipydagred3是一个在JupyterLab中使用dagred3封装。


图片

GitHub: https://github.com/timkpaine/ipydagred3


ipySigma


Sigma.js是一个可以通过快速、流畅的图片绘制网络图的JavaScript工具。它可以很好地处理大量数据,并允许更改图的外观。


ipyssigma是JupyterLab的一个封装,它将Sigma.js与Python的NetworkX包结合在一起。可以web浏览器中查看网络结构。


GitHub: https://github.com/medialab/ipysigma


Netwulf


netulf是可以以有趣的交互式方式查看NetworkX图对象。它非常容易使用,可以直接从Python或Jupyter Notebook调用。


它对研究很有用,因为它可以快速预览和改变网络结构。只需给它一个Graph对象,就可以设计还可以进行保存。


GitHub: https://github.com/benmaier/netwulf


nxviz


nxviz是一个使用Matplotlib轻松绘制图数据的Python包,它可以制作不同类型的图形,如Circos, Arc, Matrix, Hive和Parallel plot。


图片

https://github.com/ericmjl/nxviz


Py3plex


Py3plex是Python中用于探索和显示复杂网络的工具。它通过点或线的额外信息来分解、绘制和研究网络。


图片

https://github.com/SkBlaz/py3plex


Py4cytoscape


Py4cytoscape是一个Python版本的Cytoscape工具。它可以让你在不学习新方法的情况下在R和Python之间切换网络的计算任务。它提供了许多在Python或Jupyter notebook中使用的功能。这个工具包非常适合R和Python双修的小伙伴使用。


https://github.com/cytoscape/py4cytoscape


pydot


pydot是Graphviz的Python接口,用纯Python编写。它可以解析并转储为Graphviz使用的DOT语言。


https://github.com/pydot/pydot


PyGraphistry


PyGraphistry是一个用于大图的Python库。可以帮助快速获取数据、提出问题、修改数据并看到全局。它需要graphhistry的服务器配合,所以可以处理大量的数据,并且支持gpu计算,所以计算的速度很快。


https://github.com/graphistry/pygraphistry


python-igraph


Python-igraph是在Python中使用igraph的一种方式。Igraph是一个用C语言制作的研究复杂网络的免费工具。它还可以与R、Mathematica和C/ c++一起使用。


图片

https://github.com/igraph/python-igraph


pyvis


pyvis是一个Python包,用于创建和可视化交互式图形网络。


https://github.com/WestHealth/pyvis


SNAP


SNAP是一种用于分析和处理大型网络的通用高性能系统。图由节点和节点之间的有向/无向/多边组成。网络是节点和/或边缘上有数据的图。


用c++编写的SNAP库是为快速工作和清晰的网络图而设计的。它处理有很多点和线的大网络,找出它们的形状,形成新的网络,并且可以在工作时改变一些东西。


图片

https://github.com/snap-stanford/snap


编辑:于腾凯

校对:林亦霖


我觉得NetworkX是个不错的选择,文档齐全、教程丰富,适合初学者上手。

Graphviz也很适合初学者,简单直接,可以快速实现图的生成,不需要太多复杂的操作。

我觉得Cytoscape的网页版本非常友好,尤其是对想在浏览器中操作的新手。

确实要注意兼容性,有些工具像Py4cytoscape就特别设计用来让Python与R无缝对接,很方便。

对于使用不同工具的数据流转,需要了解每个工具的数据格式,建议使用相对通用的工具。

可以考虑搭配使用,比如用NetworkX进行数据处理,再用Graphviz生成视觉图,这样互补效果更好。

知识图谱可以用来进行数据可视化,比如在社交网络分析中,研究用户之间的关系。

在机器学习中,知识图谱能够帮助模型理解信息之间的关系,提高预测准确性。

在医疗领域,可以通过知识图谱整合病症与治疗方案的信息,为医生提供决策支持。