The missing 3D plotting functionality for networkx
Project description
nx3d
The missing 3D plotting functionality for the excellent networkx
Python package.
Installation
In your shell:
pip install nx3d
Quickstart
After installation,
From your shell
python -m nx3d
In your Python REPL
import nx3d
nx3d.demo()
Usage
In your Python code:
import networkx as nx
import nx3d
g = nx.frucht_graph()
nx3d.plot(g)
For more customization, use the nx3d.plot_nx3d()
function.
Contribute
Thank you for considering contributing to nx3d
.
Currently, there's no enforced testing, formatting, linting, or typechecking with CI. Let's say that's intentional to
keep this young project lightweight. With that in mind, the pre-commit hooks defined in .pre-commit-config.yaml
apply
linting and formatting to keep the project clean. Please use the pre-commit hooks before opening a PR.
Clone the code
Setup the development environment
You can do this as you like, though you might consider:
- Install
poetry
- Run
poetry shell
- Run
poetry install
- Verify the installation by running
python -m nx3d
Set up pre-commit
From this project's root, initialize pre-commit as follows:
pre-commit install
pre-commit run -a
Update the docs
- Update the inline docstrings and/or the files in the docs/ directory.
- Navigate to the docs/ dir and run
make html
.
First time updating the docs
I used brew install python-sphinx
, see installation instructions on www.sphinx-doc.org.
Hack on some code
- heterogeneous sizes and colors
- node labels
- edge labels
- support for DiGraph and MultiDiGraph
- tests
- for the trig: add collision nodes to the ends of the edges and check that they collide with source and sink nodes
- for the API: fizzbuzz it, check some basic content of the ShowBase returned by
plot_nx3d
- CI running the tests and a badge
- interactive camera controls
- animation control via callbacks
- save video / snapshot to file (https://docs.panda3d.org/1.10/python/reference/direct.showbase.ShowBase?highlight=screenshot#direct.showbase.ShowBase.ShowBase.movie)
Open a PR
- fork this repo
- push your code to your repo
- open a pull request against this repo
When it merges, CD will push to PyPi.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.