MATLAB GraphViz Layout importer
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 http://graphviz.org/ , along with extensive documentation and samples.
Credit goes to Jonas Ballani for his Bezier function which is used to draw the splines.
http://matlabdb.mathematik.uni-stuttgart.de/download.jsp?MC_ID=7&SC_ID=8&MP_ID=480
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 (https://www.mathworks.com/matlabcentral/fileexchange/24652-matlab-graphviz-layout-importer), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Acknowledgements
Inspired by: MATLAB - GraphViz interface
Inspired: GraphViz-like tools for MATLAB, plot_subfun, plot_depfun
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Version | Published | Release Notes | |
---|---|---|---|
1.3.0.0 | -Major speed optimizations.
|
||
1.1.0.0 | -Fixed bug when using mcircle node type.
|
||
1.0.0.0 |