Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Graphviz vs PyGraphViz

I have some dot files (digraphs) that I need to read in Python and extract some values from the nodes to populate my data structure. I see there are two graphviz packages for Python: graphviz and pygraphviz. Is there any big difference between the two? From a quick scroll of the docs, they pretty much seem to do the same thing. I'll be using this in Python 2.7.X for the aforementioned task.

like image 871
user4979733 Avatar asked May 20 '16 18:05

user4979733


People also ask

Is Pygraphviz same as graphviz?

graphviz is lightweight library which calls graphviz as subprocess to execute all actions and produce output. This library is great for quick and easy producing SVG or PNG output. pygraphviz is complete C bindings which uses graphviz as library and expose all graphviz internal functionality like add/remove nodes/edges.

What is Python graphviz?

Graphviz is an open-source graph visualisation software. The graphviz package, which works under Python 3.7+ in Python, provides a pure-Python interface to this software. This package allows to create both undirected and directed graphs using the DOT language.

What is the use of graphviz?

Graphviz is an open-source python module that is used to create graph objects which can be completed using different nodes and edges. It is based on the DOT language of the Graphviz software and in python it allows us to download the source code of the graph in DOT language.

What is Pydot in Python?

Pydot is a Python library, also written in Python, that "serves as a graphical interface to Graphviz, an open source graph visualization software. GraphViz is written in DOT language, but Pydot provides the ability to parse and dump data, between Python and DOT."[


1 Answers

graphviz is a lightweight library which calls graphviz as a subprocess to execute all actions and produce output. This library is great as a quick and easy way to produce SVG or PNG output.

pygraphviz contains complete C bindings which uses graphviz as a library and expose all of graphviz's internal functionality like add/remove nodes/edges. But it comes with higher complexity in deployment as pip needs to compile C bindings and find all libraries.

In your case, as you need to read and manipulate dot files, it looks like you have to go with pygraphviz. Other interesting alternative to take a look is http://pypi.python.org/pypi/pydot which is a pure python dot parser.

Disclaimer: I am biased, because I contributed (a little bit) to pygraphviz.

like image 89
Max Markov Avatar answered Oct 01 '22 19:10

Max Markov