Metadata-Version: 2.4
Name: nxviz
Version: 0.7.6
Summary: Graph Visualization Package
Author-email: "Eric J. Ma" <ericmajinglong@gmail.com>
License-File: LICENSE
Keywords: graph,networkx,nxviz,visualization
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Requires-Dist: matplotlib>=3.3.3
Requires-Dist: more-itertools>=8.6.0
Requires-Dist: networkx>=2.5
Requires-Dist: numpy>=1.19.4
Requires-Dist: palettable>=3.3.0
Requires-Dist: pandas>=1.2.0
Requires-Dist: seaborn>=0.11.1
Requires-Dist: setuptools
Provides-Extra: docs
Requires-Dist: jupyter; extra == 'docs'
Requires-Dist: mkdocs; extra == 'docs'
Requires-Dist: mkdocs-material; extra == 'docs'
Requires-Dist: mknotebooks; extra == 'docs'
Requires-Dist: pycodestyle; extra == 'docs'
Requires-Dist: pyprojroot; extra == 'docs'
Requires-Dist: sphinx; extra == 'docs'
Provides-Extra: tests
Requires-Dist: hypothesis; extra == 'tests'
Requires-Dist: pre-commit; extra == 'tests'
Requires-Dist: pylint; extra == 'tests'
Requires-Dist: pytest; extra == 'tests'
Requires-Dist: pytest-cov; extra == 'tests'
Description-Content-Type: text/markdown

# 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:

1. Prioritize node placement, mapping data to position and visual properties,
2. Draw in edges, mapping data to visual properties,
3. Add in annotations and highlights on the graph.

`nxviz` is simultaneously a data visualization research project,
art project,
and declarative data visualization tool.
We hope you enjoy using it to build beautiful graph visualizations.

## Installation

### Official Releases

`nxviz` is available on PyPI:

```bash
pip install nxviz
```

It's also available on conda-forge:

```bash
conda install -c conda-forge nxviz
```

### Pre-releases

Pre-releases are done by installing directly from git:

```bash
pip install git+https://github.com/ericmjl/nxviz.git
```

## Quickstart

To make a Circos plot:

```python
# 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")
```

![](images/circos.png)

For more examples, including other plots that can be made,
please see the examples gallery on the docs.
