Graphviz

Last updated
Graphviz
Developer(s) AT&T Labs Research and contributors [1]
Initial releasebefore 1991;32 years ago (1991) [2]
Stable release
7.0.5 [3] / 23 December 2022;4 months ago (23 December 2022)
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 barcharts) 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. "spring model" layout, minimizes global energy. Useful for graphs up to about 1000 nodes
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 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">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.

DOT is a graph description language. DOT graphs are typically files with the filename extension gv or dot. The extension gv is preferred, to avoid confusion with the extension dot used by versions of Microsoft Word before 2007.

<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.

Spatial network analysis software packages are analytic software used to prepare graph-based analysis of spatial networks. They stem from research fields in transportation, architecture, and urban planning. The earliest examples of such software include the work of Garrison (1962), Kansky (1963), Levin (1964), Harary (1969), Rittel (1967), Tabor (1970) and others in the 1960s and 70s. Specific packages address to suit their domain-specific needs, including TransCAD for transportation, GIS for planning and geography, and Axman for Space syntax researchers.

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

gvSIG Desktop application for working with geographic data

gvSIG, geographic information system (GIS), is a desktop application designed for capturing, storing, handling, analyzing and deploying any kind of referenced geographic information in order to solve complex management and planning problems. gvSIG is known for having a user-friendly interface, being able to access the most common formats, both vector and raster ones. It features a wide range of tools for working with geographic-like information.

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>

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.

jGRASP

jGRASP is a development environment that includes the automatic creation of software visualizations. It produces static visualizations of source code structure and visualizations of data structures at runtime.

<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.

Microsoft Automatic Graph Layout (MSAGL) is a .NET library for automatic graph layout. It was created by Lev Nachmanson at Microsoft Research.

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".

yEd Diagramming program

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

<span class="mw-page-title-main">Layered graph drawing</span> Graph drawing with vertices in horizontal layers

Layered graph drawing or hierarchical 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. It is also known as Sugiyama-style graph drawing after Kozo Sugiyama, who first developed this drawing style.

<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. 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.

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

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. Error: Unable to display the reference properly. See the documentation for details.
  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 - Plugins Macros etc". trac-hacks.org. Retrieved 15 January 2018.
  13. "Zim - a desktop wiki: Diagram Editor". zim-wiki.org. Retrieved 15 January 2018.