Resources

These are some representative external resources. The list includes tools that complement Graphviz, such as graph generators, postprocessors and interactive viewers. It also includes higher level systems and web sites that rely on Graphviz as a visualization service.

Please suggest additions to this list via merge request.

Graph drawing can be considered one of the tool sets used in analyzing data. Anyone interested in pursuing work in data science can find some helpful information here.

Simple Examples and Tutorials

  • Searchable notes and examples [René Nyffenegger]

Noteworthy

Editor plugins

Visual Studio Code

  • vscode-graphviz plugin (2018-2020) [João Pinto,Stephan van Stekelenburg]

Emacs

Vim

Eclipse

  • Eclipse Graphical Editing Framework DOT (2015-2021), an Eclipse plugin that can be used to render and edit DOT graphs within the Eclipse Graphical Editing Framework (GEF). For further information watch the recorded GEF DOT session on the EclipseCon Europe 2018. [Fabian Steeg, Michael Clay, Alexander Nyssen, Matthias Wienand, Tamas Miklossy]
  • EclipseGraphviz (2020) - an Eclipse plug-in that provides a Java API for Graphviz and an Image Viewer view that allows easily visualizing the graphical output of your .dot files as you save changes to them.
  • emf2gv (2012), an Eclipse plugin that helps to transform an Eclipse Modelling Framework (EMF) model into a diagram using Graphviz. GitHub, Wiki

Notepad++

  • NppGraphViz (2015-2021) - A Notepad++ plugin that sends the current tab’s document to a GraphViz preview window.

Graphical Interfaces

Interactive viewers.

  • Graph Galaxy (2020-2021) macOS WYSIWYG Graphviz editor. [Tianyong Tang]
  • Qt Visual Graph Editor (2018-2021) A multiplatform visual graph editor which can create and manuipulate graphs interactively, import and export into various popular graph formats (GEXF, GraphML, DOT, GML), convert data between them and so on. Since recent versions, Graphviz is used as a layout engine. [Ars L. Masiuk]
  • Graphviz Visual Editor A web application for interactive visual editing of Graphviz graphs described in the DOT language. [Magnus Jacobsson]
  • preview-dot (2019) visualises Graphviz graphs (with a .gv extension) within the preview pane of Windows Explorer and Outlook. [Simon Laing]
  • d3-graphviz Renders SVG from graphs described in the DOT language using the @hpcc-js/wasm port of Graphviz and does animated transitions between graphs. [Magnus Jacobsson]
  • jquery.graphviz.svg, jQuery plugin to make Graphviz SVG output more interactive and easier to navigate. [Rich Cooper]
  • Liviz.js (2011-2012), DHTML-based interactive viewer for Graphviz. Github, Demo [Satoshi Ueyama]
  • Graphviz Test Tool (2014, abandoned), a Java GUI front-end for Graphviz [Hansuli Anderegg]
  • GraphvizFiddle, a dual-view Graphviz editor [Hermann Stamm-Wilbrandt]
  • jQuery.Graphviz, a jQuery based interactive graph viewer for graphviz svg [Pablo Martín]
  • NodeViz, a framework for mapping relational data to highly styled Graphviz and displaying interactively in web clients [Greg Michalec and Skye Bender-deMoll]
  • GraphSpe, includes a converter for Microsoft Silverlight Xaml (SVG based) [Ceyhun Ciper]
  • Graphviz4Net provides Windows Presentation Foundation (WPF) control that is capable of rendering graph layouts using Graphviz. [Štěpán Šindelář]
  • ZGRViewer, an SVG-based zooming graph viewer for large graphs [Emmanuel Pietriga]
  • Instaviz, iOS graph sketching app using Graphviz libraries for rendering. [Glen Low]
  • idot (2010), an incremental Graphviz viewer (Java ≥ 1.5 with the excellent prefuse toolkit). [Mikko Vinni]
  • KGraphViewer (2014-2018), a KDE viewer for layouts generated by Graphviz tools. [Gaël de Chalendar]
  • Yoix (2000-2011, abandoned) - a scripting language implemented in Java with a data visualization module called YDAT that provides interactive display of GraphViz files (use -Txdot -y) [John Mocenigo]
  • Pixelglow’s document-based GUI (2008) for Mac OS X (won a 2004 award from Apple) [Glen Low]
  • TINTFU (2003), a Java-based editor for .dot graph files. [Walter Stroebel]
  • Canviz (2006-2013), an HTML5/Javascript canvas viewer. [Ryan Schmidt]. Source
  • BioGrapher Excel front-end (WinXP and Mac) for Graphviz that allows the user to specify graphs in a spreadsheet using adjacency matrix, node list or Newick notation (for phylogenetic trees) and visualize the layout generated by Graphviz as an Excel (vector graphics) picture object. [Rama Viswanathan]
  • xdot.py, an interactive viewer for graphs. [Jose Fonseca]
  • IdeaTree, a platform for concurrent, shared knowledge mapping
  • Wigraf (2009, abandoned), a Windows graphviz frontend based on WinGraphviz and C# .NET. “Graf” is polish for “graph.” [Kamil Lemański]
  • Leonhard (2010-2011, abandoned), a simple viewer/editor for GraphViz, developed with MacRuby. (See the demo.)
  • EasyGraphViz, a Japanese editor for Graphviz. [Nikolaos Kavvadias]
  • DotEditor (2015), GUI editor of Graphviz graphs

Language Bindings

Interfaces that allow graphviz to be called from a general purpose language or system.

Swift

  • graphviz (2020-2021) - a Swift package for Graphviz [Mattt]

MediaWiki

Drupal

  • graphviz_filter (2008-2020) - treats input text as Graphviz DOT syntax, converts it using Graphviz tools to the requested format(s) and renders it in HTML [Karim Ratib]
  • graphapi (2010-2018), a Drupal graph generation module with Graphviz Dot output capabilities. [Sebastian Daniel]

Wordpress

Python

  • Pydot - a Python interface to Graphviz (Windows comptible).
  • Python-Graph - A library for working with graphs in Python.
  • PyGraphviz - a Python interface to Graphviz similar to NetworkX.
  • yapgvb Yet Another Graphviz Python Binding [Lonnie Princehouse]
  • mfgraph - C++ interface with native bindings for Python [Michael Föetsch]
  • GvGen - a Python class to generate dot files [Sebastien Tricaud]
  • pytm - A Pythonic framework for threat modeling, generating diagrams with Graphviz
  • graph-tool (2006-2021), an efficient Python module for manipulation and statistical analysis of graphs, which includes an interface to GraphViz, via its python bindings. [Tiago de Paula Peixoto]

Go

  • gonum - Generalized graph package, reads and emits Graphviz format.
  • gographviz - a Graphviz parser for go [Walter Schulze].
  • go-dfd - Generates Data Flow Diagrams in Graphviz format.

Django

Java

C# and .NET

  • csdot (2021) - C# interface for graphviz. Can be used to Load and Save graphs. Supports maximum set of attributes associated. Nuget
  • graphviznet (2020) - .NET wrapper for the command-line GraphViz native binaries.
  • QuikGraph (2021) - Generic Graph Data Structures and Algorithms for .NET

COM

Perl

Ruby

  • ruby-graphviz (2004-2020) - Ruby interface to Graphviz. RubyGems [Grégoire Lejeune]
  • graphr (2012) - Graph-related Ruby classes. RubyGems
  • graphr (2001) Graph-related Ruby classes using graphviz [Robert Feldt]
  • graphviz (2013-2021) - A lightweight interface for generating graphs with Graphviz. RubyGems
  • graph (2009-2020) - a type of hash that outputs in graphviz’s dot format. RubyGems
  • railroady (2007-2021) generates Rails 3/4/5 model (ActiveRecord, Mongoid, Datamapper) and controller UML diagrams as cross-platform .svg files, as well as in the DOT language. GitHub, RubyGems
  • state_machines-graphviz generates di-graphs based on the events, states, and transitions defined for a state machine using GraphViz. RubyGems
  • stateoscope (2005-2019) visualize state machines using Graphviz. RubyGems
  • gviz (2012-2015) generates dot files with Ruby syntax RubyGems

MATLAB

R

Web Server

  • The original webdot in TCL [John Ellson]
    (also see this shell wrapper to protect webdot servers from overload)
  • And a simplified webdot.pl in Perl [Stephen North, with a huge assist from John Linderman]

DokuWiki

LaTeX

  • dot2tex is a LaTeX-friendly converter from Graphviz (xdot) to converting xdot PSTricks or PGF/TikZ commands, with support for LaTeX labels and arrows. [Kjell Magne Fauske]
  • Ladot: scripts for including LaTeX in your Graphviz files [Brighten Godfrey]
  • graphviz.tex: macros for including Graphviz in your LaTeX files [Derek Rayside]
  • TeXmacs, a scientific text editor, inspired by TeX and GNU Emacs, has a Graphviz interface [Joris van der Hoeven]

PHP

  • GraPHP (2015-2021) - Graphviz bindings for PHP
  • Image_Graphviz (2002-2010) Interface to GraphViz tools [Sebastian Bergmann]

Haskell

  • graphviz package (2008-2020) - provides bindings for the Dot language used by the Graphviz suite of programs for visualising graphs, as well as functions to call those programs. Hackage

Common Lisp

  • s-graphviz (2014-2020) - an S-expression presentation of GraphViz. The original idea is from S-DOT, but with a full compatiblity of original DOT syntax by following its language definition. [Xu Jingtao]
  • cl-dot (2005-2020) generates dot (a program in the GraphViz suite) output from arbitrary Lisp data.
  • s-dot2 (2018) - Fork of S-DOT
  • cl-graphviz (2012-2015) provides a CFFI based interface for Graphviz and integrates into cl-graph.
  • S-DOT (2006-2010) - a Common Lisp interface to dot [also Martin Loetzsch]

Rust

  • dot (2015-2020) - A library for generating Graphviz DOT language files for graphs, extracted from the private graphviz library in core rust. It is almost entirely the work of the Rust team. crates.io
  • [petgraph(https://github.com/petgraph/petgraph) - General graph data structure library, can output Graphviz format. crates.io
  • gsgdt (Generic Stringly typed Graph DataType) is an opinionated graph visualization and graph diff visualization library. crates.io
  • machine (2015-2019) defines procedural macros to help you write enum based state machines, and can output Graphviz graphs of the generated state machines. crates.io
  • macro-machines (2017-2020) provides state machine macros with logging and graphviz dotfile generation. crates.io
  • tabbycat (2020-2021) generate dot graphs with types defined in Rust. crates.io
  • cargo-depgraph (2020) creates dependency graphs for Cargo projects using Cargo metadata and Graphviz. crates.io

Generators and Translators

Filters that transform other data sources and formats into Graphviz.

  • Excel to Graphviz (1) (2017), a tool for visualizing Excel data as graphs [Matt Castelli]
  • Excel to Graphviz (2) (2016-2021), VBA macro spreadsheet, visualising Excel data as graphs. Blog [Jeffrey Long]
  • ExcelToGraphviz (2018), node.js tool converting Excel sheets to graphviz [partrickli]
  • SchemaSpy analyzes and displays metadata for any database via JDBC, letting you click through a hierarchy of tables [John Currier]
  • Linguine Maps (2006) visualize XML DTDs, Apache Object Relational Bridge Files, Apache Ant Build files, and provide a Java API for diagramming. GitHub [Pavel Simakov]
  • PostgreSQL AutoDoc documents the relation structure of PostgreSQL databases [Rod Taylor]
  • DOTML - XML markup to mirror dot language. Includes scripts and XSLT to transform and render [Martin Loetzsch]
  • Sql2Dot - a tiny parser in Java to transform sql into dot for visualizing data structures [Robert Dale]
  • SqlPP - a scripted SQL query generation framework that generates graphviz
  • SQL::Translator (aka SQLFairy) (2002-2020) - a group of Perl modules that manipulate structure data definitions (mostly database schemas) in interesting ways, such as visualizations of schemas (pseudo-ER diagrams with Graphviz), GitHub [Szilárd Vajda]
  • gprof filters - pl_from_gprof and dot_from_pl [Robert Nielsen] and an old gprof2dot.awk [Stephen North]
  • DBGraphNav, a tool to facilitate the browsing of data within relational databases. [Paul McMillan]

Network and Web Engineering Tools Using Graphviz

  • DNSViz (2021), a DNS visualization tool GitHub
  • TraceViz (2008) Traceroute visualization with sharp-looking SVG styles [Vidar Hokstad]
  • afterglow is a collection of scripts to generate graphs for Graphviz (and LGL), from various network logs and firewall rulesets [Raffael Marty] (see also tenshi for logfile filtering)
  • SMART passive network flow visualization tool [Cisco’s Critical Infrastructure Assurance Group (CIAG) Research team]
  • CSO Online: What a Botnet Looks like (Flash) [David Vorel]
  • EFnet IRC Network server routing maps [Douglas Boldt]
  • netmap (2013) draws the route connecting you with the Internet
  • Pathalizer visualizes paths traversed by users through web sites [Arnout Engelen]
  • apache2dot.pl (2005) parses an Apache log file to a format suitable for use with neato or dot, displaying links as they are being followed within your web site.
  • sig2dot generates a graph of all of the signature relationships in a GPG/PGP keyring
  • PHP+Graphviz tool that makes a sitemap of a web site dynamically [Laszlo Szathmary]
  • Rocketfuel ISP mapper (well, look here) [U. Washington]
  • DNS server visualization
  • tcpdump2dot filter to allow admins to network activity [Gulfie]
  • Visitors, a fast web log analyzer (2004-2006) uses graphviz to display usage patterns showing how users are using your web site. [Salvatore Sanfilippo]
  • Visualize your firewall (2008-2020) uses graphviz to produce a graph of your iptables ruleset. GitHub [Chris Forno]

Users interested in general network monitoring tools can find a comparison of some here.

AI and Language Tools Using Graphviz

Programming and Software Engineering Tools Using Graphviz

  • CAIRIS is a platform for specifying and modelling secure and usable systems. [Shamal Faily]
  • ERD (Entity-Relationship Diagram) (2019-2021) translates a plain text description of a relational database schema to a graphical entity-relationship diagram. [Andrew Gallant]
  • TheHat workflow engine based on IRC, XMPP (Jabber) shows workflows in auto-refreshing webpages [Dave Parker]
  • anifsm animates graphs in dot format via tcldot (part of the TorX software visualization suite) [Alex Belinfante and TorX consortium]
  • doxygen uses graphviz to produce class hierarchies and other diagrams directly from source code [Dimitri van Heesch]
  • nmdepend (2004-2013, abandoned) is a lightweight link-time dependency analyzer for C/C++ object files and libraries, helps manage cross-directory dependencies [Eddy Pronk]
  • AsmL an executable specification language from Microsoft Research.
  • UMLGraph - a Java tool for the Declarative Drawing of UML diagrams which generates diagrams using dot [Diomidis Spinellis] (Diomidis also contributed code for a richer set of arrow heads for dot, which he claims were really part of a stealthy plot to have Graphviz taken over by the UML community. :-)
  • Merisedot - a tool to generate MCD Entity/Relation graphics of Merise. (Seulement en Français)
  • YaccViso YACC visualization tool
  • Callgrind makes callgraphs from Valgrind [Jörg Schillin and Josef Weidendorfer]
  • Maria - Modular Reachability Analyzer - a reachability analyzer for concurrent systems that uses Algebraic System Nets as its modelling formalism [Marko Mäkelä]
  • IsaViz: A Visual Authoring Tool for RDF [Emmanuel Pietriga]
  • Finite State Machine web visualization interactively accepts input from a form [Gertjan van Noord]
  • rpmgraph, part of rpm-devel package (source), uses neato to draw a graph of dependencies between RPMs on RedHat or other RPM based systems [Andrea Lombardoni]
  • Compendium-TA, an integrated package of modelling tools which uses Graphviz for graph layouts [Alan Richardson]
  • CodeViz - a call graph generation utility for C/C++ that assumes dot for its back end [Mel Gorman]
  • Pimentech-DbUtils - utils for writing patterns databases in XML (Extended Entities Relationship diagram (ERA)) and exporting them to graphviz and sql.
  • LJV (Lightweight Java Visualizer) is a tool for visualizing Java data structures with Graphviz. It has been used to good effect in CS1 and CS2-level data structures courses. [John Hamer]
  • Python call graphs
  • ArgoUML Graphviz Automatically repositioning all visual elements from UML diagrams that are stored in XMI. These can be exported with DOT to PDF, SVG, PNG, etc. This XLST runs independently of ArgoUML. [Pander]
  • Ragel (think “lex”) compiles executable finite state machines from regular languages and can generate diagrams of the state machines in DOT format.
  • APIviz is a JavaDoc doclet which extends the Java standard doclet. It generates comprehensive UML-like class and package diagrams.
  • Reverse Snowflake Joins is a tool that parses SQL Select statements and generates a diagram.
  • eEye Binary Diffing Suite is a suite of tools for binary differential analysis, especially for reverse engineering patches as well as program updates.
  • myDBR is web-based reporting system for relational databases using Graphviz as one of its charting modules.
  • YaST openSUSE installation and configuration showing a graph of storage devices with dependencies. [Arvin Schnell]
  • Grails class diagram plugin provides an UML-like diagram of grails domain classes. [Trygve Amundsen]
  • PlantUML generates UML diagrams (classes, usecases, activities, components) using a simple text description language. [Arnaud Roques]
  • javashot captures the dynamic execution flow of a Java programa. The traces can be viewed using Graphviz.
  • scxml2dot (2010) - a very simple conversion function in Perl to plot a finite state machine written in State Chart XML (SCXML) using the Graphviz tools. [Fabrizio Morbini]
  • Erviz, an entity-relationship diagram generator that converts plain text files to DOT-formatted graphical files for Graphviz. [Mitsuru Kono]
  • Symfony application-map plugin, an easy-to-use documentation tool for the symfony framework community. [Tomasz Ducin]
  • Protodot visualises Protocol Buffer schemas

Configuration Management

  • Terraform’s terraform graph command generates a visual representation of either a configuration or execution plan. The output is in the DOT format, which can be used by GraphViz to generate charts.
  • ansible-playbook-grapher (2017-2021) graphs Ansible playbook execution with Graphviz
  • ansible-inventory-grapher (2014-2019) graphs Ansible inventory host files with Graphviz.
  • Puppet generates graphviz graphs showing relationships

Profilers

  • pprof (2005-2021) is a tool for visualization and analysis of profiling data, using Graphviz to layout callgraph profiles.

Build Systems

Bioinformatics and Cheminformatics Tools and Resources Using Graphviz

Relational structures abound in the study of biological and chemical information. The following list barely scratches the surface.

  • HasseManager (2014) for visualizing relations between chemical structures used in fragment-based drug discovery, as described in the Journal of Chemical Information and Modelling [Peter Lind]
  • Science Online protein database visualization (click on Connections - free registration and SVG plugin required, may need beta for Mozilla FireFox) [American Association for the Advancement of Science (AAAS) and Stanford University Digital Libraries Project]
  • Pubgene - Bioinformatic Solutions and Databases for Genomics, Proteomics, and Drug Discovery

Document preparation with Graphviz

Social Networking and Collaborative Work

  • Hammond Jazz Inventory - show graphical representation of musicians related by recordings in which the Hammond organ plays a significant role (orghammograms!)

Third-Party Distributions

  • RPM Find - many distros and architectures.
  • Debian - Linux packages for several architectures.
  • Gentoo - Linux packages.
  • Fedora - rpms.
  • SuSE - rpms for Novell/SuSE distributions for many architectures.
  • Ubuntu - Linux packages.
  • Arch Linux package
Last modified August 30, 2021: Update resources.md -- add protodot (f64617e)