Skip to content

A tool to create animated graph visualizations, based on graphviz.

License

Notifications You must be signed in to change notification settings

javaclll/GraphvizAnim

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GraphvizAnim

Build Status Binder DOI

GraphvizAnim is a tool to create simple animated graph visualizations; it is just a proof of concept, aimed mainly at teaching purposes. It is based on Graphviz for the graph rendering part and on ImageMagick for the animated gif generation. You can run the heap sort animation on-line using binder.

A graph animation is just a sequence of steps, a step is in turn one or more actions such as: add, hilight, label, unlabel or remove a node, and add, hilight, or remove an edge. Animations can be built by invoking suitable methods of a gvanim.Animation object (in a Python program), or by parsing a simple text file (that, in turn, can be generated by a program in any language).

The examples folder contains few instances of such approaches. After installing the package with python setup.py install, or using

pip install GraphvizAnim

you can generate an animated depth first visit (in a 3-regular random graph of 6 nodes) by running

python examples/dfv.py

or you can generate the simple animation described in simple.txt as

python -m gvanim examples/simple.txt simple

You can generate an Erdős–Rényi graph (with 10 nodes and edge probability 1/10) by running

cd examples
gcc -o er er.c
./er | python -m gvanim er

Finally, you can obain an interactive visualization of the heap sort algorithm using Jupyter by running

cd examples
jupyter notebook heapsort.ipynb

and running all the cells in order; or you can give a try to binder and watch the above animation actually running on-line.

About

A tool to create animated graph visualizations, based on graphviz.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%