Installing#
pip install ilayoutx
If you want to use numba to accelerate and parallelise some layouts (notably UMAP):
pip install ilayoutx[fastmail]
If you would like to also install iplotx for visualisation:
pip install ilayoutx[plot]
If you want to install everything including fastmath and plotting:
pip install ilayoutx[all]
Quick Start#
>>> import igraph as ig
>>> import ilayoutx as ilx
>>> g = ig.Graph.Ring(5)
>>> layout = ilx.layouts.circle(g)
>>> import networkx as nx
>>> import ilayoutx as ilx
>>> g = nx.Graph([(0, 1), (1, 2), (2, 3), (3, 4), (4, 0)])
>>> layout = ilx.layouts.circle(g)
Either way, the result is the same:
>>> print(layout)
x y
0 1.000000 0.000000
1 0.309017 0.951057
2 -0.809017 0.587785
3 -0.809017 -0.587785
4 0.309017 -0.951057
If you want to visualise the layouted graph you can use iplotx:
import iplotx as ipx
ipx.network(g, layout)
Rationale#
We believe graph analysis, graph layouting, and graph visualisation to be three separate tasks. ilayoutx currently focuses on layouting and the related task of edge routing.
Citation#
We have not yet written a publication for ilayoutx. If you would like to use ilayoutx for a publication, please contact us on our mailing list:
https://lists.sr.ht/~iosonofabio/ilayoutx-dev