You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
nx_altair offers a similar draw API to NetworkX but returns Altair Charts instead.
If you'd like to contribute, join the Gitter chatroom and share your ideas! Also, checkout the to-do list below.
Examples
If you'd like to start playing with nx_altair, download this notebook!
Simple graph
importnetworkxasnximportnx_altairasnxa# Generate a random graphG=nx.fast_gnp_random_graph(n=20, p=0.25)
# Compute positions for viz.pos=nx.spring_layout(G)
# Draw the graph using Altairviz=nxa.draw_networkx(G, pos=pos)
# Show it as an interactive plot!viz.interactive()
Leverage Altair
Customize the visualization
nx_altair also supports many of the same arguments from NetworkX for styling your network--with an Altair twist! Map visualization attributes in a declarative manner.
importnumpyasnp# Add weights to nodes and edgesforninG.nodes():
G.nodes[n]['weight'] =np.random.randn()
foreinG.edges():
G.edges[e]['weight'] =np.random.uniform(1, 10)
# Draw the graph using Altairviz=nxa.draw_networkx(
G, pos=pos,
node_color='weight',
cmap='viridis',
width='weight',
edge_color='black',
)
# Show it as an interactive plot!viz.interactive()
Install
To install from PyPI:
pip install nx_altair
To install for development, clone this repos and install using pip
pip install -e .
Contributing
We welcome pull requests! If you find a bug, we'd love for you to submit a PR. If you're not sure how to do that, check out this simple guide.
If you have a feature request, please open an issue or submit a PR!
Todo list
A list of things to-do (good ideas for PRs).
Add draw method that mirrors networkx (easy)
Node color scale vmix, vmax (easy)
Edge color scale vmix, vmax (easy)
Node labels (medium)
Edge labels (medium)
Mouse-hover interactivity (medium)
Arrows for edges (hard)
Support for large (>1000 edge) networks (hard)
Force-directed interactivity (very hard---beyond altair's current support).