An HTML5 data visualization tool
- viz.ged-project.de
 
- Free online tool for creating data visualizations
 
- Visualize economic relations (trade, migration …) between countries and country groups (e.g. EU)
 
- Editor for journalists and bloggers
 
- Share visualizations on social media
 
- Embed the player into articles and blog posts
 
Background
Project Global Economic Dynamics (GED)
- make complex economic dynamics transparent and understandable
 
- create multimedia, interactive presentations of studies, simulations and forecasts
 
GED VIZ: Player
<a href="http://gedviz/10?lang=de" target="_blank">GED VIZ Slideshow</a>
Examples: Handelsblatt, GED articles
Made with Open Web Technologies™
Progressive Enhancement
- Requirement: Make it work in IE6! o_O
 
- The editor requires newer browsers (IE8+)
 
- The player basically works in IE7+
- Non-interactive, static images for old browsers (Phantom.js screenshots)
 
- VML chart for IE8
 
- SVG chart for newer browsers
 
 
Chart Rendering 1/3
- Raphael.js is only useful for drawing low-level SVG shapes
 
- Render tree of DisplayObjects (Chart, Element, Magnet, Relation, Indicator…)
 
- DisplayObject
 
Chart Rendering 2/3
- Editor, Player and Chart are separate components
 
- chart.update(data)
 
- Countries are added and removed, data and indicator types and values may change
 
- The Chart component starts the proper transition
 
- Adapt chart type and size/scaling, calculate new positions
 
- Raphael.js animates primitive shapes, not groups
 
Chart Rendering 3/3
- A lot of procedural drawing code
 
- Map input data to visualizable data
 
- Update and transition logic is very custom
 
- State handling is quite complex
 
- Automatic binding? The binding model of D3.js would help, but still litte abstraction
 
- Raphael.js is the only SVG/VML abstraction layer
 
It’s Open Source!
- The full source code is MIT-licensed, data is free to use
 
- github.com/bertelsmannstift/GED-VIZ
 
- Give feedback, report errors and propose changes
 
- Add more data so more types of visualizations are possible
 
- Translate the UI – currently it’s available in English and German