- Notifications
You must be signed in to change notification settings - Fork26
Draw interactive NetworkX graphs with Altair
License
Zsailer/nx_altair
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Draw NetworkX graphs with Altair
nx_altair offers a similardraw API to NetworkX but returns Altair Charts instead.
If you'd like to contribute, join theGitter chatroom and share your ideas! Also, checkout theto-do list below.
If you'd like to start playing with nx_altair, downloadthis notebook!
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()
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()
To install from PyPI:
pip install nx_altair
To install for development, clone this repos and install using pip
pip install -e .
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 thissimple guide.
If you have a feature request, please open an issue or submit a PR!
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).
About
Draw interactive NetworkX graphs with Altair