Graph Drawing in TikZ

  • Till Tantau
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7704)

Abstract

At the heart of every good graph drawing algorithm lies an efficient procedure for assigning canvas positions to a graph’s nodes and the bend points of its edges. However, every real-world implementation of such an algorithm must address numerous problems that have little to do with the actual algorithm, like handling input and output formats, formatting node texts, and styling nodes and edges. We present a new framework, implemented in the Lua programming language and integrated into the TikZ graphics description language, that aims at simplifying the implementation of graph drawing algorithms. Implementers using the framework can focus on the core algorithmic ideas and will automatically profit from the framework’s pre- and post-processing steps as well as from the extensive capabilities of the TikZ graphics language and the \({\hbox{\TeX}}\) typesetting engine. Algorithms already implemented using the framework include the Reingold-Tilford tree drawing algorithm, a modular version of Sugiyama’s layered algorithm, and several force-based multilevel algorithms.

References

  1. 1.
    Battista, G.D., Eades, P., Tamassia, R., Tollis, I.G.: Graph Drawing, Algorithms for the Visualization of Graphs. Prentice Hall (1999)Google Scholar
  2. 2.
    Brüggemann-Klein, A., Wood, D.: Drawing trees nicely with \({\hbox{\TeX}}\). Electronic Publishing 2(2), 101–115 (1989)Google Scholar
  3. 3.
    Chernobelskiy, R., Cunningham, K.I., Goodrich, M.T., Kobourov, S.G., Trott, L.: Force-Directed Lombardi-Style Graph Drawing. In: van Kreveld, M., Speckmann, B. (eds.) GD 2011. LNCS, vol. 7034, pp. 320–331. Springer, Heidelberg (2012)Google Scholar
  4. 4.
    Chimani, M., Gutwenger, C., Jünger, M., Klein, K., Mutzel, P., Schulz, M.: The open graph drawing framework. Poster at the 15th International Symposium on Graph Drawing 2007 (GD 2007) (2007)Google Scholar
  5. 5.
    Cunningham, W.H.: A network simplex method. Mathematical Programming 11(1), 105–116 (1976)MathSciNetMATHCrossRefGoogle Scholar
  6. 6.
    Eades, P., Sugiyama, K.: How to draw a directed graph. Journal of Information Processing 13(4), 424–436 (1990)MATHGoogle Scholar
  7. 7.
    Ellson, J., Gansner, E., Koutsofios, E., North, S., Woodhull, G.: Graphviz and dynagraph – static and dynamic graph drawing tools. In: Junger, M., Mutzel, P. (eds.) Graph Drawing Software. Mathematics and Visualization, pp. 127–148. Springer (2004)Google Scholar
  8. 8.
    Gansner, E., Koutsofios, E., North, S., Vo, K.P.: A technique for drawing directed graphs. IEEE Transactions on Software Engineering 19(3), 214–230 (1993)CrossRefGoogle Scholar
  9. 9.
    Ierusalimschy, R.: Programming in Lua. Lua.org, 2nd edn. (2006)Google Scholar
  10. 10.
    Pohlmann, J.: Configurable Graph Drawing Algorithms for the TikZ Graphics Description Language. Diploma thesis, Institute of Theoretical Computer Science, Universität zu Lübeck (October 2011)Google Scholar
  11. 11.
    Reingold, E.M., Tilford, J.S.: Tidier drawings of trees. IEEE Transactions on Software Engineering 7(2), 223–228 (1981)CrossRefGoogle Scholar
  12. 12.
    Sugiyama, K., Tagawa, S., Toda, M.: Effective representations of hierarchical structures. Tech. Rep. 8, International Institute for Advanced Study of Social Information Science, Fujitsu (1979)Google Scholar
  13. 13.
    Tantau, T.: The TikZ and pgf Packages, Manual for version 2.10-cvs (2012), http://sourceforge.net/projects/pgf/

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Till Tantau
    • 1
  1. 1.Institute for Theoretical Computer ScienceUniversität zu LübeckLübeckGermany

Personalised recommendations