知識圖譜(關系網絡)可以用簡單的形狀和線條顯示復雜的系統,幫助我們理解數據之間的聯系。我們今天將介紹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-igr?aph
pyvis
pyvis是一個Python包,用于創建和可視化交互式圖形網絡。
https://github.com/WestHealth/pyvis
SNAP
SNAP是一種用于分析和處理大型網絡的通用高性能系統。圖由節點和節點之間的有向/無向/多邊組成。網絡是節點和/或邊緣上有數據的圖。
用c++編寫的SNAP庫是為快速工作和清晰的網絡圖而設計的。它處理有很多點和線的大網絡,找出它們的形狀,形成新的網絡,并且可以在工作時改變一些東西。
https://github.com/snap-stanford/snap
https://avoid.overfit.cn/post/56bc3ed7328b4046bc5e5d1efa935a86
作者:Meng Li