# 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.
Raw data
{
"_id": null,
"home_page": "https://github.com/ericmjl/nxviz",
"name": "nxviz",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "nxviz",
"author": "Eric J. Ma",
"author_email": "ericmajinglong@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/94/d7/7635769f432b35d7cb05a16847ee6f0e64416476a552c91e56afe579666f/nxviz-0.7.4.tar.gz",
"platform": null,
"description": "# nxviz: Composable and rational network visualizations in matplotlib\n\n`nxviz` is a package for building _rational_ network visualizations\nusing matplotlib as a backend.\nInspired heavily by the principles espoused in the grammar of graphics,\nnxviz provides ways to _compose_ a graph visualization together\nby adhering to the following recipe:\n\n1. Prioritize node placement, mapping data to position and visual properties,\n2. Draw in edges, mapping data to visual properties,\n3. Add in annotations and highlights on the graph.\n\n`nxviz` is simultaneously a data visualization research project,\nart project,\nand declarative data visualization tool.\nWe hope you enjoy using it to build beautiful graph visualizations.\n\n## Installation\n\n### Official Releases\n\n`nxviz` is available on PyPI:\n\n```bash\npip install nxviz\n```\n\nIt's also available on conda-forge:\n\n```bash\nconda install -c conda-forge nxviz\n```\n\n### Pre-releases\n\nPre-releases are done by installing directly from git:\n\n```bash\npip install git+https://github.com/ericmjl/nxviz.git\n```\n\n## Quickstart\n\nTo make a Circos plot:\n\n```python\n# We assume you have a graph G that is a NetworkX graph object.\n# In this example, all nodes possess the \"group\" and \"value\" node attributes\n# where \"group\" is categorical and \"value\" is continuous,\n# and all edges have the \"edge_value\" node attribute as well.\n\nimport nxviz as nv\nax = nv.circos(\n G,\n group_by=\"group\",\n sort_by=\"value\",\n node_color_by=\"group\",\n edge_alpha_by=\"edge_value\"\n)\n\nnv.annotate.circos_group(G, group_by=\"group\")\n```\n\n![](images/circos.png)\n\nFor more examples, including other plots that can be made,\nplease see the examples gallery on the docs.\n\n\n",
"bugtrack_url": null,
"license": "MIT license",
"summary": "Graph Visualization Package",
"version": "0.7.4",
"split_keywords": [
"nxviz"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "f12b821ccb00581c78acf556ab135528",
"sha256": "251c0f740187c6b5c16c41681fae844c3afb3aaf60a1107b5340811367adec0f"
},
"downloads": -1,
"filename": "nxviz-0.7.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f12b821ccb00581c78acf556ab135528",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 28088,
"upload_time": "2022-05-01T22:44:40",
"upload_time_iso_8601": "2022-05-01T22:44:40.740122Z",
"url": "https://files.pythonhosted.org/packages/00/ca/fb05ec7a4dad9a8789d60edb84a2a4203589d2edbf4ff437445e5d18a5d9/nxviz-0.7.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "a5cf7f30102fdb42b49abdfebe8d8c5c",
"sha256": "9499b8feadffe257fef580c8300c74e5dd902924901e8050f96b0ad15f18eb22"
},
"downloads": -1,
"filename": "nxviz-0.7.4.tar.gz",
"has_sig": false,
"md5_digest": "a5cf7f30102fdb42b49abdfebe8d8c5c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 564942,
"upload_time": "2022-05-01T22:44:42",
"upload_time_iso_8601": "2022-05-01T22:44:42.867504Z",
"url": "https://files.pythonhosted.org/packages/94/d7/7635769f432b35d7cb05a16847ee6f0e64416476a552c91e56afe579666f/nxviz-0.7.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-05-01 22:44:42",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "ericmjl",
"github_project": "nxviz",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "matplotlib",
"specs": [
[
">=",
"3.3.3"
]
]
},
{
"name": "more-itertools",
"specs": [
[
">=",
"8.6.0"
]
]
},
{
"name": "networkx",
"specs": [
[
">=",
"2.5"
]
]
},
{
"name": "numpy",
"specs": [
[
">=",
"1.19.4"
]
]
},
{
"name": "palettable",
"specs": [
[
">=",
"3.3.0"
]
]
},
{
"name": "pandas",
"specs": [
[
">=",
"1.2.0"
]
]
},
{
"name": "seaborn",
"specs": [
[
">=",
"0.11.1"
]
]
}
],
"tox": true,
"lcname": "nxviz"
}