Skip to content

Latest commit

 

History

History
61 lines (41 loc) · 2.9 KB

README.md

File metadata and controls

61 lines (41 loc) · 2.9 KB

pymnet: A Python Library for Multilayer Networks

codecov DOI

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.

Features

  • 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

Working with pymnet

Installation

We recommend executing the following command in a virtual environment:

$ python -m pip install pymnet

Usage

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))

An image of a small multiplex social network.

Contributing

We welcome contributions! Before you get started, please check out our contribution guide.

Asking Questions