GLO-STIX! Graph-Level Operations for Specifying Techniques and Interactive eXploration Chad Stolper Minsuk Kahng Zhiyuan “Jerry” Lin Florian Foerster Aakash Goel John Stasko Polo Chau http://thetrendguys.com/wp-content/uploads/2014/02/lego-bricks.jpg 2 http://fc00.deviantart.net/images/i/2003/44/6/5/3D_Lego_Race_Car.jpg 3 http://fc00.deviantart.net/images/i/2003/44/6/5/3D_Lego_Race_Car.jpg http://yippyio.files.wordpress.com/2011/09/lego_plane.jpg 4 http://fc00.deviantart.net/images/i/2003/44/6/5/3D_Lego_Race_Car.jpg http://yippyio.files.wordpress.com/2011/09/lego_plane.jpg 5 Low Level JUNG 6 High Level 7 8 What might graph visualization building blocks look like? 9 Semantic Substrates B. Shneiderman and A. Aris, “Network Visualization by Semantic Substrates,” IEEE Transactions on Visualization and Computer Graphics, vol. 12, no. 5, pp. 733 –740, 2006. 10 PivotGraph M. Wattenberg, “Visual Exploration of Multivariate Graphs,” in Proc. of the ACM SIGCHI Conference on Human Factors in Computing Systems, (CHI 2006), New York, NY, USA, 2006, pp. 811 –819. 11 12 Semantic Substrates to PivotGraph? 13 14 § Substrate on X § Aggregate Semantic Substrates to PivotGraph? § (Size Nodes by Count) § Display All Links § Show X Axis § Show Y Axis 15 Graph-Level Operations (GLOs) 16 Graph-Level Operations (GLOs) 17 Graph-Level Operations https://openclipart.org/detail/184889/lego-blocks-by-eggib-184889 18 Graph-Level Operations Encapsulated Manipulations of Graph Visualizations https://openclipart.org/detail/184889/lego-blocks-by-eggib-184889 19 Force-Directed to PivotGraph? 20 21 § Substrate on X § Substrate on Y Force-Directed to PivotGraph? § Show Links as Curved § Aggregate § (Size Nodes by Count) § Show X Axis § Show Y Axis 22 § Substrate on X § Substrate on Y Force-Directed to PivotGraph? § Show Links as Curved § Aggregate § (Size Nodes by Count) § Show X Axis § Show Y Axis 23 Identifying GLOs 24 Identifying GLOs Circle Plot 25 Identifying GLOs Matrix 26 Identifying GLOs Force-Directed 27 Identifying GLOs PivotGraph 28 Identifying GLOs Scatterplot 29 Identifying GLOs Semantic Substrates 30 Identifying GLOs 31 Identifying GLOs 1. Align Nodes 2. Evenly Distribute Nodes 3. Evenly Distribute Nodes by Attribute 4. Substrate Nodes by Attribute 5. Evenly Distribute Nodes within Substrates 6. Position Nodes Relatively 7. Evenly Distribute Nodes Radially by Attribute 12. Evenly Distribute Nodes Along Plot Radius 13. Position Nodes Along Plot Radius by Attribute 14. Substrate Nodes Along Plot Radius 15. Position Nodes Along Plot Radius by Constant 22. Display Links as Straight 23. Display Links as Curved 24. Display Links as Circles 25. Clone Active Generation 26. Select Generation k 27. Set Source Generation k 16. Apply an Algorithm to the Nodes 28. Set Target Generation k 17. Size Nodes by a Constant 29. Remove Generation k 18. Size Nodes Relatively by a Continuous 30. Aggregate by Attribute Attribute 31. Aggregate by Attribute and Attribute 9. Position Nodes Radially by Attribute 19. Display All Links 32. Deaggregate Generation k 10. Substrate Nodes Radially by Attribute 20. Display Selected Links 33. Show Axis 11. Evenly Distribute Nodes Along Plot 21. Hide Links 34. Hide Axis Radius 8. Evenly Distribute Nodes Radially 32 Identifying GLOs 1. Align Nodes 2. Evenly Distribute Nodes 3. Evenly Distribute Nodes by Attribute 4. Substrate Nodes by Attribute 5. Evenly Distribute Nodes within Substrates 6. Position Nodes Relatively 7. Evenly Distribute Nodes Radially by Attribute 12. Evenly Distribute Nodes Along Plot Radius 13. Position Nodes Along Plot Radius by Attribute 14. Substrate Nodes Along Plot Radius 22. Display Links as Straight 23. Display Links as Curved 24. Display Links as Circles 25. Clone Active Generation 34 Operations 15. Position Nodes Along Plot Radius by Constant 16. Apply an Algorithm to the Nodes 17. Size Nodes by a Constant 26. Select Generation k 27. Set Source Generation k 28. Set Target Generation k 29. Remove Generation k 18. Size Nodes Relatively by a Continuous 30. Aggregate by Attribute Attribute 31. Aggregate by Attribute and Attribute 9. Position Nodes Radially by Attribute 19. Display All Links 32. Deaggregate Generation k 10. Substrate Nodes Radially by Attribute 20. Display Selected Links 33. Show Axis 11. Evenly Distribute Nodes Along Plot 21. Hide Links 34. Hide Axis Radius 8. Evenly Distribute Nodes Radially 33 Identifying GLOs 1. Align Nodes 2. Evenly Distribute Nodes 3. Evenly Distribute Nodes by Attribute 4. Substrate Nodes by Attribute 5. Evenly Distribute Nodes within Substrates 6. Position Nodes Relatively 7. Evenly Distribute Nodes Radially by Attribute 12. Evenly Distribute Nodes Along Plot Radius 13. Position Nodes Along Plot Radius by Attribute 14. Substrate Nodes Along Plot Radius 22. Display Links as Straight 23. Display Links as Curved 24. Display Links as Circles 25. Clone Active Generation 34 Operations 15. Position Nodes Along Plot Radius by Constant 16. Apply an Algorithm to the Nodes 26. Select Generation k 27. Set Source Generation k 28. Set Target Generation k Card-Sorting 17. Size Nodes by a Constant 29. Remove Generation k 18. Size Nodes Relatively by a Continuous 30. Aggregate by Attribute Attribute 31. Aggregate by Attribute and Attribute 9. Position Nodes Radially by Attribute 19. Display All Links 32. Deaggregate Generation k 10. Substrate Nodes Radially by Attribute 20. Display Selected Links 33. Show Axis 11. Evenly Distribute Nodes Along Plot 21. Hide Links 34. Hide Axis Radius 8. Evenly Distribute Nodes Radially 34 Identifying GLOs 1. Align Nodes 2. Evenly Distribute Nodes 3. Evenly Distribute Nodes by Attribute 4. Substrate Nodes by Attribute 5. Evenly Distribute Nodes within Substrates 6. Position Nodes Relatively 7. Evenly Distribute Nodes Radially by Attribute 12. Evenly Distribute Nodes Along Plot Radius 13. Position Nodes Along Plot Radius by Attribute 14. Substrate Nodes Along Plot Radius 22. Display Links as Straight 23. Display Links as Curved 24. Display Links as Circles 25. Clone Active Generation 34 Operations 15. Position Nodes Along Plot Radius by Constant 16. Apply an Algorithm to the Nodes 26. Select Generation k 27. Set Source Generation k 28. Set Target Generation k 5 Categories 17. Size Nodes by a Constant 29. Remove Generation k 18. Size Nodes Relatively by a Continuous 30. Aggregate by Attribute Attribute 31. Aggregate by Attribute and Attribute 9. Position Nodes Radially by Attribute 19. Display All Links 32. Deaggregate Generation k 10. Substrate Nodes Radially by Attribute 20. Display Selected Links 33. Show Axis 11. Evenly Distribute Nodes Along Plot 21. Hide Links 34. Hide Axis Radius 8. Evenly Distribute Nodes Radially 35 Modifying Display Properties | Positioning Nodes | Modifying Element Properties | Cloning Nodes | Aggregation Categories: Modifying Display Properties 36 Modifying Display Properties | Positioning Nodes | Modifying Element Properties | Cloning Nodes | Aggregation Categories: Modifying Display Properties Show Axis Hide Axis 37 Modifying Display Properties | Positioning Nodes | Modifying Element Properties | Cloning Nodes | Aggregation Categories: Positioning Nodes 38 Modifying Display Properties | Positioning Nodes | Modifying Element Properties | Cloning Nodes | Aggregation Categories: Positioning Nodes Evenly Distribute Nodes Radially by Attribute 39 Modifying Display Properties | Positioning Nodes | Modifying Element Properties | Cloning Nodes | Aggregation Categories: Positioning Nodes Substrate Nodes by Categorical Attribute 40 Modifying Display Properties | Positioning Nodes | Modifying Element Properties | Cloning Nodes | Aggregation Categories: Positioning Nodes Position Nodes Relatively by Continuous Attribute 41 Modifying Display Properties | Positioning Nodes | Modifying Element Properties | Cloning Nodes | Aggregation Categories: Modifying Element Properties 42 Modifying Display Properties | Positioning Nodes | Modifying Element Properties | Cloning Nodes | Aggregation Categories: Modifying Element Properties Size Nodes by Constant 43 Modifying Display Properties | Positioning Nodes | Modifying Element Properties | Cloning Nodes | Aggregation Categories: Modifying Element Properties Size Nodes by Attribute 44 Modifying Display Properties | Positioning Nodes | Modifying Element Properties | Cloning Nodes | Aggregation Categories: Modifying Element Properties 45 Modifying Display Properties | Positioning Nodes | Modifying Element Properties | Cloning Nodes | Aggregation Categories: Modifying Element Properties Display Links as Straight 46 Modifying Display Properties | Positioning Nodes | Modifying Element Properties | Cloning Nodes | Aggregation Categories: Modifying Element Properties Display Links as Curved 47 Modifying Display Properties | Positioning Nodes | Modifying Element Properties | Cloning Nodes | Aggregation Categories: Cloning Nodes 48 Modifying Display Properties | Positioning Nodes | Modifying Element Properties | Cloning Nodes | Aggregation Categories: Aggregating Nodes and Edges 49 Modifying Display Properties | Positioning Nodes | Modifying Element Properties | Cloning Nodes | Aggregation Categories: Aggregating Nodes and Edges 50 Specifying Techniques | Engineering | Analysts | Visualization Community So why do this? 51 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: Specifying Techniques 52 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: Specifying Techniques 53 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: Specifying Techniques How did we get here? 54 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: Specifying Techniques 55 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: Specifying Techniques Substrate Nodes on x by attribute0 Substrate Nodes on y by attribute1 Aggregate Nodes (by attribute0 and attribute1) Size Nodes by Count Show x Axis Show y Axis Display Links as Curved Display All Links Set Target Generation 1 Set Source Generation 1 56 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: Specifying Techniques 57 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: Specifying Techniques 58 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: Specifying Techniques 59 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: Specifying Techniques 60 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: For Engineers… https://openclipart.org/detail/184889/lego-blocks-by-eggib-184889 61 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: For Engineers… Fixed Implementation Target Get the Techniques “For Free” https://openclipart.org/detail/184889/lego-blocks-by-eggib-184889 62 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: For Analysts… 63 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: For Analysts… New Method of Graph Exploration “Between Techniques” 64 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: For the Visualization Community… 65 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: For the Visualization Community… Identify New, Effective Techniques? 66 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: For the Visualization Community… Identify New, Effective Techniques? 67 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: For the Visualization Community… 68 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: For the Visualization Community… 69 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: For the Visualization Community… 70 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: For the Visualization Community… 71 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: For the Visualization Community… 72 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: For the Visualization Community… 73 Specifying Techniques | Engineering | Analysts | Visualization Community Benefits: For the Visualization Community… 74 Data | Subgraphs | Interaction Where to go from here… 75 Data | Subgraphs | Interaction Future Work: Data 76 Data | Subgraphs | Interaction Future Work: Data Distance from Root 77 Data | Subgraphs | Interaction Future Work: Data Distance from Root http://mbostock.github.io/d3/talk/20111018/tree.html 78 Data | Subgraphs | Interaction Future Work: Data Degree of Interest Figure 8. Organization chart with over 400 nodes accessible over WWW through Web browser. display location. Only one of the nodes will be displayed. If that Card, Stuart K., and David Nation. "Degree-of-interest trees: A component node is selected as the focus node, it will be shifted to the free of an attention-reactive user interface." layout Proceedings of the zone and surrounding nodesWorking will then be visible. The use of DOI to do selective expansion and the use of folding rows Conference on Advanced Visual Interfaces. ACM, 2002. greatly increases the size of tree that can be horizontally laid out. Compression in X. The tree not fitting in the X direction is common and occurs either because of a large branching factor below one node or else because there is an accumulation of widths across several subtrees. In the latter case, the nodes below each box are laid out in the horizontal space available for each box. This pattern is visible in Figure 6. The nodes with the highest DOIs in a row have the largest node size. This node size estab- The use of compression and aggregation zones ensures that all 79 trees can be fit within the space. Data | Subgraphs | Interaction Future Work: Subgraphs 80 Data | Subgraphs | Interaction Future Work: Subgraphs N. Henry, J.-D. Fekete, and M. J. McGuffin, “NodeTrix: a Hybrid Visualization of Social Networks,” IEEE Transactions on Visualization and Computer Graphics, vol. 13, no. 6, pp. 1302 –1309, 2007. 81 Multivariate Network Exploration and Presentation: Data | Subgraphs | Interaction From Detail to Overview via Selections and Aggregations Future Work: Subgraphs Stef van den Elzen and Jarke J. van Wijk van den Elzen and van Wijk. “Multivariate Network Exploration and Presentation: From Detail to Overview via Selections and Aggregations”. Infovis 2014. (Or, right before this talk). Fig. 1. Multivariate network exploration using selections of interest, detail view (left) and high-level infographic-style overview (right). 82 Data | Subgraphs | Interaction Future Work: Interaction 83 Wrapping Up… 84 Wrapping Up… § Graph-Level Operations (GLO) Potential Benefits of GLOs GLO-STIX Application 85 Wrapping Up… § Graph-Level Operations (GLO) § Potential Benefits of GLOs GLO-STIX Application 86 Wrapping Up… § Graph-Level Operations (GLO) § Potential Benefits of GLOs § GLO-STIX Application 87 Acknowledgements • National Science Foundation under Grant No. IIS-1320537 • National Science Foundation Graduate Research Fellowship Program under Grant No. DGE-1148903 • U.S. Army Re- search Office (ARO) and Defense Advanced Research Projects Agency (DARPA) under Contract Number W911NF-11-C-0088 • XDATA program sponsored by the Air Force Research Laboratory (AFRL) and DARPA 88 Minsuk Kahng Aakash Goel Zhiyuan “Jerry” Lin John Stasko Florian Foerster Polo Chau 89 Thank You! Minsuk Kahng Aakash Goel Chad Stolper chadstolper@gatech.edu Zhiyuan “Jerry” Lin John Stasko Florian Foerster Polo Chau 90 Questions? Minsuk Kahng Aakash Goel Chad Stolper chadstolper@gatech.edu Zhiyuan “Jerry” Lin John Stasko Florian Foerster Polo Chau 91