Graphviz
Encyclopedia
Graphviz is a package of open-source tools initiated by AT&T Labs Research
for drawing
graphs
specified in DOT language
scripts. It also provides libraries for software applications to use the tools. Graphviz is free software
licensed under the Eclipse Public License
.
and a set of tools that can generate and/or process DOT files:
dot : a command-line tool to produce layered drawings
of directed graph
s in a variety of output formats (PostScript
, PDF
, SVG
, annotated text and so on).
neato : for "spring model" layout (in Mac OS version called "energy minimised")
twopi : for radial graph layouts.
circo : for circular graph layouts.
fdp : another layout engine for undirected graphs.
dotty : a graphical user interface
to visualize and edit graphs.
lefty : a programmable (in a language inspired by EZ) widget that displays DOT graphs and allows the user to perform actions on them with the mouse. Lefty can therefore be used as the view in a model-view-controller
GUI application that uses graphs.
Related software:
AT&T Labs
AT&T Labs, Inc. is the research & development division of AT&T, where scientists and engineers work to understand and advance innovative technologies relevant to networking, communications, and information. Over 1800 employees work in six locations: Florham Park, NJ; Middletown, NJ; Austin, TX;...
for drawing
Graph drawing
Graph drawing is an area of mathematics and computer science combining methods from geometric graph theory and information visualization to derive two-dimensional depictions of graphs arising from applications such as social network analysis, cartography, and bioinformatics...
graphs
Graph theory
In mathematics and computer science, graph theory is the study of graphs, mathematical structures used to model pairwise relations between objects from a certain collection. A "graph" in this context refers to a collection of vertices or 'nodes' and a collection of edges that connect pairs of...
specified in DOT language
DOT language
DOT is a plain text graph description language. It is a simple way of describing graphs that both humans and computer programs can use. DOT graphs are typically files that end with the .gv extension. The .gv extension is preferred, as .dot also is used by Microsoft Office 2003.Various programs...
scripts. It also provides libraries for software applications to use the tools. Graphviz is free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
licensed under the Eclipse Public License
Eclipse Public License
The Eclipse Public License is an open source software license used by the Eclipse Foundation for its software. It replaces the Common Public License and removes certain terms relating to litigations related to patents....
.
Architecture
Graphviz consists of a graph description language named the DOT languageDOT language
DOT is a plain text graph description language. It is a simple way of describing graphs that both humans and computer programs can use. DOT graphs are typically files that end with the .gv extension. The .gv extension is preferred, as .dot also is used by Microsoft Office 2003.Various programs...
and a set of tools that can generate and/or process DOT files:
dot : a command-line tool to produce layered drawings
Layered graph drawing
Layered graph drawing is a type of graph drawing in which the vertices of a directed graph are drawn in horizontal rows or layers with the edges generally directed downwards...
of directed graph
Directed graph
A directed graph or digraph is a pair G= of:* a set V, whose elements are called vertices or nodes,...
s in a variety of output formats (PostScript
PostScript
PostScript is a dynamically typed concatenative programming language created by John Warnock and Charles Geschke in 1982. It is best known for its use as a page description language in the electronic and desktop publishing areas. Adobe PostScript 3 is also the worldwide printing and imaging...
Portable Document Format
Portable Document Format is an open standard for document exchange. This file format, created by Adobe Systems in 1993, is used for representing documents in a manner independent of application software, hardware, and operating systems....
, SVG
Scalable Vector Graphics
Scalable Vector Graphics is a family of specifications of an XML-based file format for describing two-dimensional vector graphics, both static and dynamic . The SVG specification is an open standard that has been under development by the World Wide Web Consortium since 1999.SVG images and their...
, annotated text and so on).
neato : for "spring model" layout (in Mac OS version called "energy minimised")
twopi : for radial graph layouts.
circo : for circular graph layouts.
fdp : another layout engine for undirected graphs.
dotty : a graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...
to visualize and edit graphs.
lefty : a programmable (in a language inspired by EZ) widget that displays DOT graphs and allows the user to perform actions on them with the mouse. Lefty can therefore be used as the view in a model-view-controller
Model-view-controller
Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...
GUI application that uses graphs.
Applications
- AsciiDocAsciiDocAsciiDoc is a lightweight markup language. It requires the installation of a special AsciiDoc "converter program" that can convert AsciiDoc documents to XHTML, DocBook or HTML. DocBook in turn can be converted to other formats such as PDF, TeX, Unix manpages and many more using the tool A2X which...
can embed Graphviz syntax as a diagram - ArgoUMLArgoUMLArgoUML is an UML diagramming application written in Java and released under the open source Eclipse Public License. By virtue of being a Java application, it is available on any platform supported by Java....
's alternative UML Diagram rendering called argouml-graphviz - ConnectedTextConnectedTextConnectedText is a commercial editing application with wiki-like syntax for Windows. It was designed by Eduardo Mauro. It stores topics in a SQL database, maintaining a complete revision history. It is possible to open several workspaces at the same time...
has a Graphviz plugin. - DokuWiki GraphViz Plugin
- DoxygenDoxygenDoxygen is a documentation generator for multiple programming languages.Doxygen is a tool for writing software reference documentation. The documentation is written within code, and is thus relatively easy to keep up to date...
uses Graphviz to generate diagrams including class hierarchies and collaboration for computer programComputer programA computer program is a sequence of instructions written to perform a specified task with a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute...
source codeSource codeIn computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...
. - GRAMPSGRAMPSThe core export file format of Gramps is named Gramps XML and uses the file extension .gramps. It is extended from XML. Gramps XML is a free format. Gramps usually compresses Gramps XML files with gzip. The file format Portable Gramps XML Package uses the extension .gpkg and is currently a .tar.gz...
uses Graphviz to create family trees - GraphViz - MediaWiki Graphviz Extension
- KGraphViewer/KGraphEditor - KDE graph-viewer and -editor
- Linguine Maps Java API to Graphviz
- lisp2dot converts LispLisp programming languageLisp is a family of computer programming languages with a long history and a distinctive, fully parenthesized syntax. Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today; only Fortran is older...
-like program trees to DOT language. Designed for use with genetic programmingGenetic programmingIn artificial intelligence, genetic programming is an evolutionary algorithm-based methodology inspired by biological evolution to find computer programs that perform a user-defined task. It is a specialization of genetic algorithms where each individual is a computer program...
. - MoinMoin wiki Graphviz Extension
- OmniGraffle 5OmniGraffleOmniGraffle is a diagramming application made by The Omni Group. OmniGraffle is built only for Mac OS X and the iPad. It may be used to create diagrams, flow charts, org charts, and illustrations. It features a drag-and-drop WYSIWYG interface...
uses the Graphviz engine for automatically laying out graphs - PlantUMLPlantUMLPlantUML is an open-source UML tool that allows to generate UML diagrams from a textual description. It is used to draw UML diagrams but is not a modeling tool itself...
creates UMLUnified Modeling LanguageUnified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...
diagrams from textual description - Puppet can produce DOT resource graphs which can be viewed with Graphviz
- QuickGraph can use Graphviz to render the graphs.
- ScribusScribusScribus is a desktop publishing application, released under the GNU General Public License as free software. It is based on the free Qt toolkit, therefore native versions are available for Linux, Unix-like operating systems, Mac OS X, Microsoft Windows, and OS/2...
is an Open Source DTP program that can use Graphviz to render graphs by using its internal editor in a special frame type called render frame. - SphinxSphinx (documentation generator)Sphinx is a documentation generator which converts reStructuredText files into HTML websites and other formats including PDF, EPub and man. It exploits the extensible nature of reStructuredText through a number of extensions...
is a documentation generator that can use Graphviz to embed graphs in documents. - TracTracTrac is an open source, web-based project management and bug-tracking tool. The program is inspired by CVSTrac, and was originally named svntrac due to its ability to interface with Subversion. It is developed and maintained by Edgewall Software....
wiki has a Graphviz plugin - UMLGraph creates UMLUnified Modeling LanguageUnified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...
class and sequence diagrams from declarative specifications - WinGraphviz is a older third party native win32 platform build.
- WikidPadWikidPadWikidPad is an open source, Python-based wiki-like outliner for storing thoughts, ideas, to-do lists, contacts, and other notes with wiki-like linking between pages....
uses Graphviz as a plugin
See also
- Graph (mathematics)Graph (mathematics)In mathematics, a graph is an abstract representation of a set of objects where some pairs of the objects are connected by links. The interconnected objects are represented by mathematical abstractions called vertices, and the links that connect some pairs of vertices are called edges...
- Graph drawingGraph drawingGraph drawing is an area of mathematics and computer science combining methods from geometric graph theory and information visualization to derive two-dimensional depictions of graphs arising from applications such as social network analysis, cartography, and bioinformatics...
- Graph theoryGraph theoryIn mathematics and computer science, graph theory is the study of graphs, mathematical structures used to model pairwise relations between objects from a certain collection. A "graph" in this context refers to a collection of vertices or 'nodes' and a collection of edges that connect pairs of...
- Dot languageDOT languageDOT is a plain text graph description language. It is a simple way of describing graphs that both humans and computer programs can use. DOT graphs are typically files that end with the .gv extension. The .gv extension is preferred, as .dot also is used by Microsoft Office 2003.Various programs...
Related software:
- Microsoft Automatic Graph LayoutMicrosoft Automatic Graph LayoutMicrosoft Automatic Graph Layout is a .NET library for automatic graph layout.It was created by Lev Nachmanson at Microsoft Research.Earlier versions carried the name GLEE .- Contents :...
- A .NET library for laying out graphs - yEdYEdyEd is a freely available, general-purpose diagramming software with amulti-document interface.It is a cross-platform application written in Java that runs on Windows, Linux, Mac OS, or any platform that supports the JVM....
Graph Editor - Java-based general-purpose diagram editor
External links
- Graphviz Homepage
- Graphviz, Projects & Software Page, AT&T Labs Research
- An Introduction to Graphviz and dot (M. Simionato, 2004)
- Create relationship diagrams with Graphviz (Shashank Sharma, 2005)
- Visualize function calls with Graphviz (M. Tim Jones, 2005)
- Use Graphviz in a web browser without downloading any software