nxviz: Composable and rational network visualizations in matplotlib
nxviz is a package for building rational network visualizations
using matplotlib as a backend.
Inspired heavily by the principles espoused in the grammar of graphics,
nxviz provides ways to compose a graph visualization together
by adhering to the following recipe:
- Prioritize node placement, mapping data to position and visual properties,
- Draw in edges, mapping data to visual properties,
- Add in annotations and highlights on the graph.
nxviz is simultaneously a data visualization research project,
and declarative data visualization tool.
We hope you enjoy using it to build beautiful graph visualizations.
nxviz is available on PyPI:
pip install nxviz
It's also available on conda-forge:
conda install -c conda-forge nxviz
Pre-releases are done by installing directly from git:
pip install git+https://github.com/ericmjl/nxviz.git
To make a Circos plot:
We assume you have a graph G that is a NetworkX graph object.
In this example, all nodes possess the "group" and "value" node attributes
where "group" is categorical and "value" is continuous,
and all edges have the "edge_value" node attribute as well.
import nxviz as nv ax = nv.circos( G, group_by="group", sort_by="value", node_color_by="group", edge_alpha_by="edge_value" )
nv.annotate.circos_group(G, group_by="group") ```
For more examples, including other plots that can be made, please see the examples gallery on the docs.