pymnet
is a Python package for creating, analyzing, and visualizing multilayer networks as formalized by Kivelä et al. (2014).
It is designed for network scientists with an easy-to-use yet flexible interface, featuring, inter alia, representations of a very general class of multilayer networks, structural metrics of multilayer networks, and random multilayer-network models.
To learn more about the concepts and design principles underlying pymnet
, check out this overview.
- Written in pure Python
- Full support for general multilayer networks
- Efficient handling of multiplex networks (with automatically generated lazy evaluation of coupling edges)
- Extensive functionality –– analysis, transformations, reading and writing networks, network models, etc.
- Flexible multilayer-network visualization (using Matplotlib and D3)
- Integration with NetworkX for monoplex network analysis
We recommend executing the following command in a virtual environment:
$ python -m pip install pymnet
To get started with pymnet
, check out our tutorials –– and when in doubt, consult the API reference contained in our documentation.
As an introductory example, with the following code, we can create a small multiplex network capturing different types of social relations between individuals and visualize the result:
import pymnet
net_social = pymnet.MultiplexNetwork(couplings="categorical", fullyInterconnected=False)
net_social["Alice", "Bob", "Friends"] = 1
net_social["Alice", "Carol", "Friends"] = 1
net_social["Bob", "Carol", "Friends"] = 1
net_social["Alice", "Bob", "Married"] = 1
fig_social = pymnet.draw(net_social, layout="circular", layerPadding=0.2, defaultLayerLabelLoc=(0.9,0.9))
We welcome contributions! Before you get started, please check out our contribution guide.
- For bugs, feature requests, etc., please use GitHub issues.
- Otherwise, feel free to contact the main developer: Mikko Kivelä