MATLAB GraphViz Layout importer

GraphViz DOT file importer. Features include colours (HTML/X11/RGB/HSV), shapes, line styles etc.
Updated 15 Jul 2009

View License

This code takes a GraphViz ready DOT file, passes it to Graphviz (either using dot (fallback to mwdot if not present) or a custom layout engine you specify.) The output is then parsed and drawn in an axes specified by you, along with returning object handles and information about the graph as an adjacency matrix.

Please see the comments at the beginning of the file for more information on usage/limitations.

It has been quite extensively tested, and should work for just about any graph you can throw at it. Furthermore, custom node shapes and arrows can be easily added.

While it can work with the built-in (and unsupported) mwdot function, it is recommended you install the full GraphViz suite, available at , along with extensive documentation and samples.

Credit goes to Jonas Ballani for his Bezier function which is used to draw the splines.

Also, the inspiration came from Leon Peshkin's GraphViz interface, which (unfortunately) didn't quite cut it for our needs, and required me to write my own.

If you use this in your software, I would greatly appreciate a credit in your software's about page; I've put a fair amount of time in to this project, and wish to spread the word that others may benefit from it. Questions, comments, and suggestions for improvement are welcome.

Cite As

Bjorn Wielens (2024). MATLAB GraphViz Layout importer (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2008b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Directed Graphs in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

-Major speed optimizations.
- Realtime mode removed.
- 2 modes of operation
- Resolution of spline option.
- No need for x11colours.mat
- Removed temp file use.

-Fixed bug when using mcircle node type.
-Added autoSize and drawMode arguments.