Universal network and tree visualisation library.
Project Links
Meta
Author: Fabio Zanini
Maintainer: Fabio Zanini
Requires Python: >=3.10
Classifiers
Development Status
- 5 - Production/Stable
Framework
- Matplotlib
Intended Audience
- Developers
- Education
- Science/Research
License
- OSI Approved :: MIT License
Natural Language
- English
Operating System
- OS Independent
Programming Language
- Python :: 3
- Python :: 3.11
- Python :: 3.12
- Python :: 3.13
Topic
- Scientific/Engineering :: Visualization
- System :: Networking
Typing
- Typed
iplotx
Visualise networks and trees in Python, with style.
Supports:
- networks:
- trees:
In addition to the above, any network or tree analysis library can register an entry point to gain compatibility with iplotx with no intervention from our side.
Installation
pip install iplotx
Quick Start
import networkx as nx
import matplotlib.pyplot as plt
import iplotx as ipx
g = nx.Graph([(0, 1), (1, 2), (2, 3), (3, 4), (4, 0)])
layout = nx.layout.circular_layout(g)
ipx.plot(g, layout)

Documentation
See readthedocs for the full documentation.
Gallery
See gallery.
Citation
If you use iplotx for publication figures, please cite:
F. Zanini. A universal tool for visualisation of networks and trees in Python. F1000Research 2025, 14:1377. https://doi.org/10.12688/f1000research.173131.1
Features
- Plot networks from multiple libraries including networkx, igraph and graph-tool, using Matplotlib. ✅
- Plot trees from multiple libraries such as cogent3, ETE4, skbio, biopython, and dendropy. ✅
- Flexible yet easy styling, including an internal library of styles ✅
- Interactive plotting, e.g. zooming and panning after the plot is created. ✅
- Store the plot to disk in many formats (SVG, PNG, PDF, GIF, etc.). ✅
- 3D network visualisation with depth shading. ✅
- Efficient plotting of large graphs (up to ~1 million nodes on a laptop). ✅
- Edit plotting elements after the plot is created, e.g. changing node colors, labels, etc. ✅
- Animations, e.g. showing the evolution of a network over time. ✅
- Mouse and keyboard interaction, e.g. hovering over nodes/edges to get information about them. ✅
- Node clustering and covers, e.g. showing communities in a network. ✅
- Edge tension, edge waypoints, and edge ports. ✅
- Choice of tree layouts and orientations. ✅
- Tree-specific options: cascades, subtree styling, split edges, etc. ✅
- (WIP) Support uni- and bi-directional communication between graph object and plot object.🏗️
Authors
Fabio Zanini (https://fabilab.org)
1.7.1
Feb 20, 2026
1.7.0
Feb 04, 2026
1.6.0
Nov 24, 2025
1.5.1
Nov 12, 2025
1.5.0
Nov 09, 2025
1.4.2
Oct 31, 2025
1.4.1
Oct 30, 2025
1.4.0
Oct 29, 2025
1.3.0
Oct 28, 2025
1.2.1
Oct 23, 2025
1.2.0
Oct 21, 2025
1.1.0
Oct 20, 2025
1.0.1
Oct 17, 2025
1.0.0
Oct 16, 2025
0.12.0
Oct 09, 2025
0.11.1
Oct 02, 2025
0.11.0
Oct 02, 2025
0.10.0
Oct 01, 2025
0.9.0
Sep 25, 2025
0.8.0
Sep 25, 2025
0.7.0
Sep 24, 2025
0.6.8
Sep 21, 2025
0.6.7
Sep 21, 2025
0.6.6
Sep 20, 2025
0.6.5
Sep 03, 2025
0.6.4
Aug 26, 2025
0.6.3
Aug 26, 2025
0.6.2
Aug 14, 2025
0.6.1
Jul 28, 2025
0.5.1
Jul 20, 2025
0.5.0
Jul 19, 2025
0.4.0
Jul 11, 2025
0.3.1
Jun 23, 2025
0.3.0
Jun 23, 2025
0.2.1
Jun 16, 2025
0.2.0
Jun 15, 2025
0.1.0
May 25, 2025
0.0.1
May 25, 2025
