Graphviz

Last updated
Graphviz
Developer(s) AT&T Labs Research and contributors [1]
Initial releasebefore 1991;33 years ago (1991) [2]
Stable release
11.0.0 [3] / 28 April 2024;2 months ago (28 April 2024)
Repository gitlab.com/graphviz/graphviz
Written in C
Operating system Linux, macOS, Windows
Type Graph visualization
License Eclipse Public License
Website graphviz.org
A red-black tree plotted by Graphviz Red black tree graphviz example.svg
A red–black tree plotted by Graphviz
Undirected graph showing adjacency of the 48 contiguous United States UnitedStatesGraphViz.svg
Undirected graph showing adjacency of the 48 contiguous United States
A visualization of a JavaScript life cycle made by using Graphviz Wikipedia HistoryHelper Pluging Life Cycle.svg
A visualization of a JavaScript life cycle made by using Graphviz

Graphviz (short for Graph Visualization Software) is a package of open-source tools initiated by AT&T Labs Research for drawing graphs (as in nodes and edges, not as in bar charts) specified in DOT language scripts having the file name extension "gv". It also provides libraries for software applications to use the tools. Graphviz is free software licensed under the Eclipse Public License.

Contents

Tools

dot
a command-line tool to produce layered graph drawings in a variety of output formats, such as (PostScript, PDF, SVG, annotated text and so on).
neato
useful for undirected graphs up to about 1000 nodes. "Spring model" layout minimizes global energy.
fdp
force-directed graph drawing similar to "spring model", but minimizes forces instead of energy. Useful for undirected graphs.
sfdp
multiscale version of fdp for the layout of large undirected graphs.
twopi
for radial graph layouts. Nodes are placed on concentric circles depending on their distance from a given root node.
circo
circular layout. Suitable for certain diagrams of multiple cyclic structures, such as certain telecommunications networks.
dotty
a graphical user interface to visualize and edit graphs.
lefty
a programmable (in a language inspired by EZ [4] ) widget that displays DOT graphs and allows the user to perform actions on them with the mouse. Therefore, Lefty can be used as the view in a model–view–controller GUI application that uses graphs.
gml2gv, gv2gml
convert to/from GML, another graph file format.
graphml2g
convert a GraphML file to the DOT format.
gxl2gv, gv2gxl
convert to/from GXL, another graph file format.

Applications that use Graphviz

Notable applications of Graphviz include:

See also

Related Research Articles

<span class="mw-page-title-main">Scribus</span> Desktop publishing application

Scribus is free and open-source desktop publishing (DTP) software available for most desktop operating systems. It is designed for layout, typesetting, and preparation of files for professional-quality image-setting equipment. Scribus can also create animated and interactive PDF presentations and forms. Example uses include writing newspapers, brochures, newsletters, posters, and books.

<span class="mw-page-title-main">Graph drawing</span> Visualization of node-link graphs

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, linguistics, and bioinformatics.

<span class="mw-page-title-main">Doxygen</span> Free software for generating software documentation from source code

Doxygen is a documentation generator and static analysis tool for software source trees. When used as a documentation generator, Doxygen extracts information from specially-formatted comments within the code. When used for analysis, Doxygen uses its parse tree to generate diagrams and charts of the code structure. Doxygen can cross reference documentation and code, so that the reader of a document can easily refer to the actual code.

DOT is a graph description language, developed as a part of the Graphviz project. DOT graphs are typically stored as files with the .gv or .dot filename extension — .gv is preferred, to avoid confusion with the .dot extension used by versions of Microsoft Word before 2007. dot is also the name of the main program to process DOT files in the Graphviz package.

<span class="mw-page-title-main">Force-directed graph drawing</span> Physical simulation to visualize graphs

Force-directed graph drawing algorithms are a class of algorithms for drawing graphs in an aesthetically-pleasing way. Their purpose is to position the nodes of a graph in two-dimensional or three-dimensional space so that all the edges are of more or less equal length and there are as few crossing edges as possible, by assigning forces among the set of edges and the set of nodes, based on their relative positions, and then using these forces either to simulate the motion of the edges and nodes or to minimize their energy.

<span class="mw-page-title-main">OmniGraffle</span> Diagramming and digital illustration application

OmniGraffle is a diagramming and digital illustration application for macOS and iOS created by The Omni Group.

GXL is designed to be a standard exchange format for graphs. GXL is an extensible markup language (XML) sublanguage and the syntax is given by an XML document type definition (DTD). This exchange format offers an adaptable and flexible means to support interoperability between graph-based tools.

Graph Modeling Language (GML) is a hierarchical ASCII-based file format for describing graphs. It has been also named Graph Meta Language.

GraphML is an XML-based file format for graphs. The GraphML file format results from the joint effort of the graph drawing community to define a common format for exchanging graph structure data. It uses an XML-based syntax and supports the entire range of possible graph structure constellations including directed, undirected, mixed graphs, hypergraphs, and application-specific attributes.

<span class="mw-page-title-main">Call graph</span> Structure in computing

A call graph is a control-flow graph, which represents calling relationships between subroutines in a computer program. Each node represents a procedure and each edge (f, g) indicates that procedure f calls procedure g. Thus, a cycle in the graph indicates recursive procedure calls.

A personal wiki is wiki software that allows individual users to organize information on their desktop or mobile computing devices in a manner similar to community wikis, but without collaborative software or multiple users.

<span class="mw-page-title-main">Cytoscape</span>

Cytoscape is an open source bioinformatics software platform for visualizing molecular interaction networks and integrating with gene expression profiles and other state data. Additional features are available as plugins. Plugins are available for network and molecular profiling analyses, new layouts, additional file format support and connection with databases and searching in large networks. Plugins may be developed using the Cytoscape open Java software architecture by anyone and plugin community development is encouraged. Cytoscape also has a JavaScript-centric sister project named Cytoscape.js that can be used to analyse and visualise graphs in JavaScript environments, like a browser.

PGF/Ti<i>k</i>Z Graphics languages

PGF/TikZ is a pair of languages for producing vector graphics from a geometric/algebraic description, with standard features including the drawing of points, lines, arrows, paths, circles, ellipses and polygons. PGF is a lower-level language, while TikZ is a set of higher-level macros that use PGF. The top-level PGF and TikZ commands are invoked as TeX macros, but in contrast with PSTricks, the PGF/TikZ graphics themselves are described in a language that resembles MetaPost. Till Tantau is the designer of the PGF and TikZ languages. He is also the main developer of the only known interpreter for PGF and TikZ, which is written in TeX. PGF is an acronym for "Portable Graphics Format". TikZ was introduced in version 0.95 of PGF, and it is a recursive acronym for "TikZ ist kein Zeichenprogramm".

Lucidchart is a web-based diagramming application that allows users to visually collaborate on drawing, revising and sharing charts and diagrams, and improve processes, systems, and organizational structures. It is produced by Lucid Software Inc., based in Utah, United States and co-founded by Ben Dilts and Karl Sun.

<span class="mw-page-title-main">NetworkX</span> Python library for graphs and networks

NetworkX is a Python library for studying graphs and networks. NetworkX is free software released under the BSD-new license.

yEd Diagramming program

yEd is a general-purpose diagramming program with a multi-document interface.

<span class="mw-page-title-main">Zim (software)</span> Personal wiki software written in Python

Zim is a graphical text editor designed to maintain a collection of locally stored wiki-pages, a personal wiki. It works as a personal knowledge base and note-taking software application that operates on text files using markdown. Each wiki-page can contain things like text with simple formatting, links to other pages, attachments, and images. Additional plugins, such as an equation editor and spell-checker, are also available. The wiki-pages are stored in a folder structure in plain text files with wiki formatting. Zim can be used with the Getting Things Done method.

<span class="mw-page-title-main">NodeXL</span> Network analysis and visualization package for Microsoft Excel

NodeXL is a network analysis and visualization software package for Microsoft Excel 2007/2010/2013/2016. The package is similar to other network visualization tools such as Pajek, UCINet, and Gephi. It is widely applied in ring, mapping of vertex and edge, and customizable visual attributes and tags. NodeXL enables researchers to undertake social network analysis work metrics such as centrality, degree, and clustering, as well as monitor relational data and describe the overall relational network structure. When applied to Twitter data analysis, it showed the total network of all users participating in public discussion and its internal structure through data mining. It allows social Network analysis (SNA) to emphasize the relationships rather than the isolated individuals or organizations, allowing interested parties to investigate the two-way dialogue between organizations and the public. SNA also provides a flexible measurement system and parameter selection to confirm the influential nodes in the network, such as in-degree and out-degree centrality. The software contains network visualization, social network analysis features, access to social media network data importers, advanced network metrics, and automation.

ConceptDraw DIAGRAM is proprietary diagramming software used to create business graphics, including: diagrams, flowcharts, Infographics, data visualization for business process models, data presentation and project management documentation. It can also be used for creating professional and technical diagrams, such as: UML diagrams, DFD, ERD, computer networks topology, engineering schemes, floor plans, and other technical graphic formats. The program was developed by CS Odessa in 1999. Since 2008, it has formed a part of ConceptDraw OFFICE. A set of solution add-ons that include collections of task-oriented templates and vector stencils libraries, have been released for ConceptDraw DIAGRAM, relating to certain industry-specific graphical tasks. The software also contains a set of tools for vector graphics drawing, along with a built-in presentation mode.

<span class="mw-page-title-main">PlantUML</span> Open-source software tool

PlantUML is an open-source tool allowing users to create diagrams from a plain text language. Besides various UML diagrams, PlantUML has support for various other software development related formats, as well as visualisation of JSON and YAML files.

References

  1. "Credits Graphviz".
  2. Eleftherios Koutsofios and Stephen North. Drawing graphs with dot. Technical Report 910904-59113-08TM, AT&T Bell Laboratories, Murray Hill, New Jersey, September 1991.
  3. "Release 11.0.0".
  4. The Lefty guide (“Editing Pictures with lefty”), section 3.1, p. 9.
  5. "argouml-graphviz.tigris.org". argouml-graphviz.tigris.org. Archived from the original on 17 March 2012. Retrieved 15 January 2018.
  6. Naumann, Uwe (2012). The Art of Differentiating Computer Programs: An Introduction to Algorithmic Differentiation. SIAM. p. 181. ISBN   9781611972078 . Retrieved 15 January 2018.
  7. Anderson, Fritz (2014). Xcode 5 Start to Finish: iOS and OS X Development. Addison-Wesley Professional. p. 425. ISBN   9780133751024 . Retrieved 15 January 2018.
  8. "Std DependencyGraph". FreeCAD web. Retrieved 18 July 2018.
  9. "OmniGraffle 7.6 Reference Manual for macOS – Opening and Importing Files in OmniGraffle".
  10. Voit, Karl. "Org tutorial on generating simple process diagrams using dot and tables". orgmode.org. Retrieved 15 January 2018.
  11. Gemy, Cedric (2010). Scribus 1.3.5 Beginner's Guide. Packt Publishing Ltd. ISBN   9781849513012 . Retrieved 15 January 2018.
  12. "GraphvizPlugin". trac-hacks.org. Retrieved 15 January 2018.
  13. "Zim – a desktop wiki: Diagram Editor". zim-wiki.org. Retrieved 15 January 2018.