Commit 8d2a3c0a authored by Mark Hansen's avatar Mark Hansen
Browse files

Make pages for each layout engine

This should allow us to say more about each layout engine, and add some missing layout engines.
parent 772954c4
......@@ -21,20 +21,6 @@ Graphviz is open source graph visualization software. Graph visualization is a w
The Graphviz layout programs take descriptions of graphs in a simple text language, and make diagrams in useful formats, such as images and SVG for web pages; PDF or Postscript for inclusion in other documents; or display in an interactive graph browser. Graphviz has many useful features for concrete diagrams, such as options for colors, fonts, tabular node layouts, line styles, hyperlinks, and custom shapes.
## Roadmap
**dot -** "hierarchical" or layered drawings of directed graphs. This is the default tool to use if edges have directionality.
**neato -** "spring model" layouts. This is the default tool to use if the graph is not too large (about 100 nodes) and you don't know anything else about it. Neato attempts to minimize a global energy function, which is equivalent to statistical multi-dimensional scaling.
**fdp -** "spring model" layouts similar to those of neato, but does this by reducing forces rather than working with energy.
**sfdp -** multiscale version of fdp for the layout of large graphs.
**twopi -** radial layouts, after Graham Wills 97. Nodes are placed on concentric circles depending their distance from a given root node.
**circo -** circular layout, after Six and Tollis 99, Kauffman and Wiese 02. This is suitable for certain diagrams of multiple cyclic structures, such as certain telecommunications networks.
## Download
The current release of Graphviz can be downloaded here: [Download](/download)
......
......@@ -44,78 +44,6 @@ either as raw text files or within a graphical editor.
(Graphviz was not intended to be a Visio replacement, so it
is probably frustrating to try to use it that way.)
## Roadmap
### dot
Makes "hierarchical" or layered drawings of directed graphs. The layout
algorithm aims edges in the same direction (top to bottom, or left to right)
and then attempts to avoid edge crossings and reduce edge length.
<p style="text-align: center;">
<a href="/Gallery/directed/cluster.html">
<img src="/Gallery/directed/cluster.svg">
</a>
</p>
### neato
"spring model" layouts. This is the default tool to use if the graph is not
too large (about 100 nodes) and you don't know anything else about it. `neato`
attempts to minimize a global energy function, which is equivalent to
statistical multi-dimensional scaling. The solution is achieved using stress
majorization, though the older Kamada-Kawai algorithm, using steepest descent,
is also available.
<p style="text-align: center;">
<a href="/Gallery/undirected/ER.html">
<img src="/Gallery/undirected/ER.svg">
</a>
</p>
### fdp
"spring model" layouts similar to those of `neato`, but does this by reducing
forces rather than working with energy. Fdp implements the Fruchterman-Reingold
heuristic including a multigrid solver that handles larger graphs and clustered
undirected graphs.
<p style="text-align: center;">
<a href="/Gallery/undirected/fdpclust.html">
<img src="/Gallery/undirected/fdpclust.svg">
</a>
</p>
### sfdp
Multiscale version of `fdp` for the layout of large graphs.
<p style="text-align: center;">
<img src="/Gallery/undirected/200910_viz_matrix_188w.png">
</p>
### twopi
Radial layouts, after Graham Wills 97. Nodes are placed on concentric circles
depending their distance from a given root node. You can set the root node, or
let `twopi` do it.
<p style="text-align: center;">
<a href="/Gallery/twopi/twopi2.html">
<img src="/Gallery/twopi/twopi2.svg">
</a>
</p>
### circo
Circular layout, after Six and Tollis 99, Kauffman and Wiese 02. This is
suitable for certain diagrams of multiple cyclic structures, such as certain
telecommunications networks.
<p style="text-align: center;">
<img src="/Gallery/undirected/honda-tokoro.circo.png">
</p>
## Viewers
* **dotty** - a vintage customizable Unix/X windows viewer that has
......
---
title: Layout Engines
weight: 3
---
---
title: circo
weight: 4
---
Circular layout, after Six and Tollis 1999[^1][^2], Kauffman and Wiese 2002[^3].
This is suitable for certain diagrams of multiple cyclic structures, such as
certain telecommunications networks.
<p style="text-align: center;">
<img src="/Gallery/undirected/honda-tokoro.circo.png">
</p>
[^1]: [Six J.M., Tollis I.G. (1999) A Framework for Circular Drawings of Networks. In: Kratochvíyl J. (eds) Graph Drawing. GD 1999. Lecture Notes in Computer Science, vol 1731. Springer, Berlin, Heidelberg.](https://doi.org/10.1007/3-540-46648-7_11)
[^2]: [Six J.M., Tollis I.G. (1999) Circular Drawings of Biconnected Graphs. In: Goodrich M.T., McGeoch C.C. (eds) Algorithm Engineering and Experimentation. ALENEX 1999. Lecture Notes in Computer Science, vol 1619. Springer, Berlin, Heidelberg.](https://doi.org/10.1007/3-540-48518-X_4)
[^3]: [Michael Kaufmann, Roland Wiese (2002) Embedding Vertices at Points: Few Bends suffice for Planar Graphs. In: Journal of Graph Algorithms and Applications. vol. 6, no. 1, pp. 115–129](https://doi.org/10.1142/9789812796608_0005)
---
title: dot
weight: 1
---
Makes "hierarchical" or layered drawings of directed graphs.
`dot` is the default tool to use if edges have directionality.
The layout algorithm aims edges in the same direction (top to bottom, or left
to right) and then attempts to avoid edge crossings and reduce edge length.
<p style="text-align: center;">
<a href="/Gallery/directed/cluster.html">
<img src="/Gallery/directed/cluster.svg">
</a>
</p>
---
title: fdp
---
"spring model" layouts similar to those of [neato]({{< ref "neato.md" >}}), but
does this by reducing forces rather than working with energy.
`fdp` implements the Fruchterman-Reingold heuristic including a multigrid solver
that handles larger graphs and clustered undirected graphs.
<p style="text-align: center;">
<a href="/Gallery/undirected/fdpclust.html">
<img src="/Gallery/undirected/fdpclust.svg">
</a>
</p>
---
title: neato
weight: 2
---
"spring model" layouts.
`neato` is the default tool to use if the graph is not too large (about 100 nodes)
and you don't know anything else about it.
`neato` attempts to minimize a global energy function, which is equivalent to
statistical multi-dimensional scaling.
The solution is achieved using stress majorization, though the older
Kamada-Kawai algorithm, using steepest descent, is also available.
<p style="text-align: center;">
<a href="/Gallery/undirected/ER.html">
<img src="/Gallery/undirected/ER.svg">
</a>
</p>
---
title: sfdp
---
Multiscale version of `fdp` for the layout of large graphs.
<p style="text-align: center;">
<img src="/Gallery/undirected/200910_viz_matrix_188w.png">
</p>
---
title: twopi
weight: 3
---
Radial layouts, after Graham Wills 1997[^1].
Nodes are placed on concentric circles depending their distance from a given
root node.
You can set the root node, or let `twopi` do it.
<p style="text-align: center;">
<a href="/Gallery/twopi/twopi2.html">
<img src="/Gallery/twopi/twopi2.svg">
</a>
</p>
[^1]: [Graham J. Wills (1999) NicheWorks—Interactive Visualization of Very Large Graphs, Journal of Computational and Graphical Statistics, 8:2, 190-212](https://doi.org/10.1080/10618600.1999.10474810)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment