graph drawing in ti k z
play

Graph Drawing in Ti k Z Till Tantau Graph Drawing Conference 2012 - PowerPoint PPT Presentation

Graph Drawing in Ti k Z Till Tantau Graph Drawing Conference 2012 The Problem: Integrating Graph Drawings Into Documents 3 5 6 7 8 9 2 4 f 1 f 2 h 3 h f 6 c 2 h 4 p f 3 c 1 h 1 h h 2 f 5 f 4 1 5 6 3 0 1 2 4 (b) A realization


  1. Graph Drawing in Ti k Z Till Tantau Graph Drawing Conference 2012

  2. The Problem: Integrating Graph Drawings Into Documents 3 5 6 7 8 9 2 4 f 1 f 2 h 3 h´ f 6 c 2 h 4 p f 3 c 1 h 1 h h 2 f 5 f 4 1 5 6 3 0 1 2 4 (b) A realization of p . (a) nal arc can reduce the crossings g. 3. Steps towards a final layout: (a) t UPR R , (b) fine-layering of the subgraph arcs constraints, are restricted to the Till Tantau GD 2012 2 / 17

  3. The Problem: Integrating Graph Drawings Into Documents GraphViz yields T EX yields � INTEGRAL exp d x exp dx . · 2 π 2pi + + x r x r Till Tantau GD 2012 2 / 17

  4. The Problem: Integrating Graph Drawings Into Documents GraphViz yields T EX yields What we actually want: � � INTEGRAL exp d x exp d x exp dx · . · 2 π + 2 π 2pi + + x r x r x r Till Tantau GD 2012 2 / 17

  5. A Solution: Graph Drawing in Ti k Z Take an existing document description language (T EX) with an embedded graphics description language (Ti k Z). Add options and syntactic extensions for specifying graphs easily . Run graph drawing algorithms as part of the document processing . Advantages + Styling of nodes and edges matches main document. + Graph drawing algorithms know size of nodes and labels precisely. + No external programs needed. + Algorithm designers can concentrate on algorithmic aspects. Till Tantau GD 2012 3 / 17

  6. Talk Outline How Do I Use It? How Does It Work? How Do I Implementing An Algorithm? Till Tantau GD 2012 4 / 17

  7. Ti k Z in a Nutshell: The Idea \usepackage{tikz} ... A circle like is A circle like \tikz { round. \fill[red] (0,0) circle[radius=.5ex]; } is round. Ti k Z is a package of T EX-macros for specifying graphics. The macros transform highlevel descriptions of graphics into lowlevel PDF-, PostScript-, or SVG- primitives during a T EX run. Till Tantau GD 2012 5 / 17

  8. Ti k Z in a Nutshell: Nodes and Edges \tikz { \node (a) at (0,2) [rounded rectangle] {Hello}; \node (b) at (2,2) [tape] {World}; \node (c) at (4,2) [circle, dashed] {$ c^2 $}; \node (d) at (4,0) [diamond] {$ \delta $}; \draw (a) edge[->] (b) (b) edge[->] (c) (b) edge[->] (d) (d) edge[->] (a); } c 2 Hello World δ Till Tantau GD 2012 6 / 17

  9. Using the Graph Drawing System = Adding an Option \usetikzlibrary{graphdrawing.layered} ... \tikz [layered layout] { \node (a) at (0,1) [rounded rectangle] {Hello}; \node (b) at (2,1) [tape] {World}; \node (c) at (4,1) [circle, dashed] {$ c^2 $}; \node (d) at (4,0) [diamond] {$ \delta $}; \draw (a) edge[->] (b) (b) edge[->] (c) (b) edge[->] (d) (d) edge[->] (a); } Hello World c 2 δ Till Tantau GD 2012 7 / 17

  10. Using the Graph Drawing System = Adding an Option \usetikzlibrary{graphdrawing.force} ... \tikz [spring layout, node distance=1.25cm] { \node (a) at (0,1) [rounded rectangle] {Hello}; \node (b) at (2,1) [tape] {World}; \node (c) at (4,1) [circle, dashed] {$ c^2 $}; \node (d) at (4,0) [diamond] {$ \delta $}; \draw (a) edge[->] (b) (b) edge[->] (c) (b) edge[->] (d) (d) edge[->] (a); } Hello δ World c 2 Till Tantau GD 2012 7 / 17

  11. A Concise Syntax for Graphs A concise syntax for graphs is important when humans specify graphs ‘‘by hand.’’ The chosen syntax mixes the philosophies of DOT and Ti k Z. \tikz \graph [layered layout] { Hello Hello -> World -> "$c^2$" ; World -> "$\delta$" -> Hello ; World }; c 2 δ Till Tantau GD 2012 8 / 17

  12. Key Features of Ti k Z’s Syntax for Graphs Node options follow nodes in square brackets. Edge options follow edges in square brackets. Additonal edge kinds. Natural specification of trees. \tikz \graph [layered layout] { Hello Hello [rounded rectangle] -> World [tape] World -> "$c^2$" [circle, dashed] ; World -> "$\delta$" [diamond] c 2 δ -> Hello; }; Till Tantau GD 2012 9 / 17

  13. Key Features of Ti k Z’s Syntax for Graphs Node options follow nodes in square brackets. Edge options follow edges in square brackets. Additonal edge kinds. Natural specification of trees. \tikz \graph [layered layout] { Hello Hello [rounded rectangle] -> World [tape] World -> "$c^2$" [circle, dashed]; foo World c 2 δ -> [dashed, blue] "$\delta$"[diamond] -> [bend right, "foo"’] Hello; }; Till Tantau GD 2012 9 / 17

  14. Key Features of Ti k Z’s Syntax for Graphs Node options follow nodes in square brackets. Edge options follow edges in square brackets. Additonal edge kinds. Natural specification of trees. \tikz \graph [tree layout] { a a -> b -- c <- d <-> e; }; c e b d Till Tantau GD 2012 9 / 17

  15. Key Features of Ti k Z’s Syntax for Graphs Node options follow nodes in square brackets. Edge options follow edges in square brackets. Additonal edge kinds. Natural specification of trees. \tikz \graph [binary tree layout] { root root -> { left -> { right left 1, 2 }, 1 2 3 right -> { 3 -> { , 4 } 4 } } }; Till Tantau GD 2012 9 / 17

  16. Talk Outline How Do I Use It? How Does It Work? How Do I Implementing An Algorithm? Till Tantau GD 2012 10 / 17

  17. LuaT EX in a Nutshell T EX is great, . . . but implementing advanced algorithms is next to impossible. Lua is a small, simple, elegant language, . . . . . . that has been integrated into modern versions of T EX: � 100 $\sum_{n=1}^{100} n = n = 1 n = 5050 \directlua{ local sum = 0 for i=1,100 do sum = sum + i end tex.print(sum) }$ Till Tantau GD 2012 11 / 17

  18. How a Graph is Drawn Ti k Z Layer Lua Layer \graph[tree layout]{ beginGraphDrawingScope(...) addNode(...) a -> b -> c addEdge(...) }; runGraphDrawingAlgorithm() load algorithm and run it node positioning callback endGraphDrawingScope() edge positioning callback Till Tantau GD 2012 12 / 17

  19. Talk Outline How Do I Use It? How Does It Work? How Do I Implementing An Algorithm? Till Tantau GD 2012 13 / 17

  20. ‘‘Graph Drawing’’ can be seen as. . . starting with a graph , . . . . . . applying a series of transformations to it. . . . . . and ending with a drawn graph . Graph drawing in Ti k Z follows this philosophy: Algorithms declare what kind of graphs they expect and also the properties of the graphs they produce . Till Tantau GD 2012 14 / 17

  21. Implementing a New Graph Drawing Algorithm -- File VerySimpleDemo.lua local VerySimpleDemo = pgf.gd.new_algorithm_class { works_only_on_connected_graphs = true, } function VerySimpleDemo:run() local graph = self.ugraph -- The graph model local radius = graph.options[’/graph drawing/radius’] local alpha = (2*math.pi) / #graph.vertices -- Iterate over all vertices: for i,vertex in ipairs(graph.vertices) do vertex.pos.x = math.cos(i*alpha) * radius vertex.pos.y = math.sin(i*alpha) * radius end end return VerySimpleDemo -- This return is a quirk of Lua Till Tantau GD 2012 15 / 17

  22. Using the Graph Drawing Algorithm \tikz \graph [ layout=VerySimpleDemo, radius=1cm] { a -- b -- c -- a; d -- e; f -- g -- h -- d -- f; e -- g; }; h a d g c e b f Till Tantau GD 2012 16 / 17

  23. Using the Graph Drawing Algorithm \tikz \graph [ layout=VerySimpleDemo, radius=1cm] { a -- [orient=right] b -- c -- a; d -- e; f -- g -- h -- d -- f; e -- g; }; h c d g e a b f Till Tantau GD 2012 16 / 17

  24. Using the Graph Drawing Algorithm \tikz \graph [ layout=VerySimpleDemo, radius=1cm] a --[orient=right] b -- c -- a; d -- e; f -- g -- h -- d -- [stub,red] f; e -- [stub, red] g; }; h c d g e a b f Till Tantau GD 2012 16 / 17

  25. Using the Graph Drawing Algorithm \tikz \graph [ layout=VerySimpleDemo, radius=1cm, nodes={circle, fill=..., ...}, edges={circle connection bar, ...} ] { a --[orient=right] b -- c -- a; d -- e; f -- g -- h -- d -- f; e -- g; }; h c d g e a b f Till Tantau GD 2012 16 / 17

  26. Conclusion Graph drawing in Ti k Z is aimed at users who want to draw graphs with up to ≈ 100 nodes inside T EX documents and researchers who want to implement new algorithms. Already implemented algorithms: Reingold–Tilford tree drawing. Layered Sugiyama method. Multi-level force-based algorithms. Available as part of (the development version of) Ti k Z. Till Tantau GD 2012 17 / 17

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend