Python Graph Libraries
These libraries are concerned with graphs and networks, not the plotting of numeric data in graphical form.
From the Python Graph API page, plus some others discovered through searching the Internet, quoting the descriptions for each package. Since their names are confusingly similar, we provide the pip installable name (dist) and the importable name (pkg).
python-igraph (dist: igraph, mod: igraph) is the set of Python bindings for igraph, a collection of network analysis tools with the emphasis on efficiency, portability and ease of use. It is easily installable from wheels for an extensive array of platforms and it benefits from contributions coming in through users of the C library and R bindings.
NetworkX (dist: NetworkX, mod: networkx) is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. It is implemented based on NumPy and SciPy and therefore supports all common platforms.
graph-tool (dist: graph-tool, mod: graph_tool) is an efficient package for manipulation and statistical analysis of graphs, based on the C++ Boost Graph Library and parallelized using OpenMP. It is not pip-installable, but available through conda. It is the newest of the bunch, so its author seems to have spent some time to implement a comparative amount of features compared to the others.
rustworkX (dist: rustworkx, mod: rustworkx) Rustworkx is a general purpose graph library for Python written in Rust to take advantage of the performance and safety that Rust provides. It is designed to provide a high performance general purpose graph library for any Python application.
All of the above have options for graph generation, IO, algorithms, statistics, and drawing (to image files, Matplotlib, and Cairo). All are free software or open source.
The following Python package is based on the concept of implicit graphs and provides algorithm implementations specifically for this context. It is free software.
NoGraphs (dist: nographs, mopd: nographs) Graph analysis - the lazy (evaluation) way. NoGraphs simplifies the analysis of graphs that can not or should not be fully computed, stored or adapted, e.g. infinite graphs, large graphs and graphs with expensive computations.
The following are marked as or at least seem unmaintained:
Another Python Graph Library (dist&mod: apgl) is a simple, fast and easy to use graph library with some machine learning features. (Last commit in 2014, marked unmaintained in 2018, author recommends NetworkX or igraph)
py_graph (dist&mod: py_graph) is a native python library for working with graphs. (Page offline as of 2021)
python-graph (dist: python-graph-core, mod: pygraph) is a library for working with graphs in Python. This software provides a suitable data structure for representing graphs and a whole set of important algorithms. (Last commit in 2018, no issue page)
EasyGraph (dist: Python-EasyGraph, mod: easygraph) is a multi-processing, hybrid (written in Python and C++) graph library for analyzing undirected, directed graphs and multigraphs. It integrates state-of-the-art graph processing approaches, and covers a series of advanced graph processing algorithms include structural hole spanners detection (HIS, MaxD, Common_Greedy, AP_Greedy and HAM), and graph representation learning (deepwalk, node2vec, LINE and SDNE).
The above lists should be arranged in ascending alphabetical order - please respect this when adding new entries. When specifying release dates please use the format YYYY-MM-DD.