Charticulator : Interactive Construction of Bespoke Chart Layouts Donghao Ren 1,2 , Bongshin Lee 2 , and Matthew Brehmer 2 1 University of California, Santa Barbara 2 Microsoft Research
� 2 Create highly customized visualizations for presentation
� 3 Brief overview of current tools Template Editors Shelf Configuration Interactive Authoring Custom Code Data Illustrator Lyra iVisDesigner Less expressive Very expressive Expressivity
� 4 Interactive authoring – Data Mapping Lyra [A. Satyanarayan, J. Heer, 2014] iVisDesigner [D. Ren et al., 2014]
� 5 Interactive authoring – Expressive Glyphs Data-Driven Guides [N. W. Kim et al., 2016] InfoNice [Y. Wang et al., 2018] Data Ink [H. Xia et al., 2018]
� 6 Interactive authoring – Partition & Repetition Data Illustrator [Z. Liu et al., 2018]
� 7 Layout and Linking are underexplored
� 8 Charticulator = Chart + Articulator • “Articulate” as Layout • “Articulate” as Linking Connecting by Series Spiral Layout Nested Layout Connect with Link Data Circle Packing Stacking
� 9 Demo * Original Design: Weather Radials Poster by Raureif
� 10 Existing approaches for specifying layouts • Layouts as special data transforms Data Layout Transform Graphics data attributes layout attributes • Implications: • Hard to switch layout once graphics has been created • Difficult to combine layout transforms • Most other approaches focus on specific visualizations • Graph, tree, word cloud, etc.
� 11 Compose complex layouts using partial specifications Design individual marks Combine marks into a Glyph e.g., e.g., Map data to width & height Put the star at the center Layout the glyphs e.g., Stack the glyphs along a custom curve * Design inspired by Best Bookshelf [Tanyoung Kim]
� 12 Compose complex layouts using partial specifications Design individual marks Combine marks into a Glyph e.g., e.g., Map data to width & height Put the star at the center Layout the glyphs e.g., Group the glyphs by “Year”, within each year, stack horizontally * Design inspired by Best Bookshelf [Tanyoung Kim]
� 13 Compose complex layouts using partial specifications Design individual marks Combine marks into a Glyph e.g., e.g., Map data to width & height Put the star at the center Layout the glyphs e.g., Group the glyphs by “Year”, within each year, stack horizontally * Design inspired by Best Bookshelf [Tanyoung Kim]
� 14 Compose complex layouts using partial specifications Vertical : Group by “MapY” Horizontal layout for each cell Horizontal : Group by “MapX”
� 15 Coordinate Systems Cartesian Coordinates Polar Coordinates
� 16 Coordinate Systems Curve Coordinates (Spiral) Curve Coordinates (Hand-drawn)
� 17 Implementation • Problem: there is no direct way of computing the layout given a set of partial specifications • Our solution: constraint-based layout algorithm
� 18 Constraint-based layout algorithm Partial Layout Specification Mathematical Constraints A B A.x 2 = B.x 1 Snap G1.x 2 + Gap = G2.x 1 G1 G2 G3 G4 G2.x 2 + Gap = G3.x 1 G3.x 2 + Gap = G4.x 1 Stack Horizontally
� 19 Constraint solver • Sparse conjugate gradient algorithm x || Ax − b || 2 + λ || x − x 0 || 2 min Constraints Keep the current positions • Implemented using Eigen * , compiled into WebAssembly for performance • https:/ /github.com/donghaoren/lscg-solver * Eigen: http:/ /eigen.tuxfamily.org/index.php?title=Main_Page
� 20 Creating reusable templates • Constraint-based layout specification generates reusable designs • Adapt to different canvas sizes • Adapt to new (compatible) datasets Microsoft Power BI Charticulator
� 21 Beyond the paper
� 22 Filter & Grouping & Multiple Glyphs • Support composite charts
� 23 Nested Visualizations • Support small multiples
� 24 Nested Visualizations • Use chart templates as marks Export & Reuse Create a single instance
� 25 Demo
� 26 Deployment • Available online: • https:/ /charticulator.com/ • Open Source (MIT license): • https:/ /github.com/Microsoft/charticulator
� 27 Deployment • Number of users per day (average: 108)
� 28 Future directions • Incorporate multi-modal interactions • Pen & touch • Speech • Support more sophisticated layout techniques, e.g., • Edge bundling • Treemap • Force-directed layout algorithm
� 29 Thanks! Questions? • Links to Charticulator • https:/ /charticulator.com/ • https:/ /github.com/Microsoft/charticulator
Recommend
More recommend