Psychology of Flashing Lights
The study of the human brain and psychology teach us that we are naturally attracted to stimuli such as flashing lights, human faces, and text. Our brains are always on the look out for “new shiny things.”
When it comes to light, our eyes naturally focus where it is brightest. In fact, if you go into a dark room with just a candle, studies show that it’s almost impossible to divert your eyes from looking at the light.
For more real-world scenarios, just consider how your eyes automatically are drawn to the flashing lights of an emergency vehicle, or the brightly colored blinking ad on a webpage, or blinking neon signs. They all just suck us in.
So it’s no surprised that when I saw Zach Bowders’ animated Tableau viz pop up on my Twitter feed on March 26th, I was suddenly mesmerized. I kept watching the GIF over and over! Then I blurted out, “How did he do that?”
Take it away, Zach!
The Creation of GoCharting – Zach Bowders
Tuesday March 26 I published my Tableau workbook and Tweeted a GIF of what I’m calling “GoCharting.”
GoCharting is a method of animation within Tableau I cooked up over the weekend.
All it takes is two Excel sheets.
No trig, no polys, no hacking.
I deeply suck at math and always look for the easiest way out.
I’m a big fan of the band OK GO. In their Obsession video, they use a method they’re calling “paper mapping” across 567 printers to create a wall of “animated” paper behind them.
(Video Link: https://www.youtube.com/watch?v=LgmxMuW6Fsc)
During filming the paper printed out in coordinated patterns at a normal speed, and the members of the group moved very slowly during filming. When the video was brought up to speed it created the effect of a smoothly flowing background with the band moving at normal speed.
Cool, right? Why can’t I do that?
Tableau is a points-mapping software that we typically use for data analysis. Animation is the process of mapping points and then shifting those points to create the impression of motion.
When we see the above animation in one action, we see a ball arch in from the left, squash, rebound, and exit to the right. In reality what we’re seeing are 12 separate balls over a sequence of time. Now imagine you were mapping that same sequence out on a grid.
A basic version might look something like this.
Each numbered green cell represents the order in which we see the ball and the Vertical and Horizontal coordinates give us the shape of the motion.
You can do this in Tableau with a little prep. You’ll be using two excel sheets. One sheet (which I’m calling the GoChart) lays out the 10×10 grid. If you create this sheet and import it into Tableau (make sure your three fields are represented as Dimensions, not Measures) you’ll be able to create your grid.
So now that we have our grid, if we revisit our Excel mockup from before, we’ll be creating something that looks like this:
The ball starts in Cell 21, arcs up slightly to 12, descends diagonally to 56, rebounds to 29, and ends in 40.
Let’s talk about our second Excel file we’ll need to make this work. I call this the Sequence. For a simple animation like this, we’d create something like this:
Add this sheet to your Tableau workbook and LEFT JOIN it to hour GoChart file. This will make the GoChart persistent, the size and shape will remain constant regardless of what movement we introduce. Think of it as setting your axis manually rather than letting Tableau select it for you. Set your marks to circle (this is a ball after all) and drop Sequence on Pages (Make sure Sequence is a Dimension).
This is pretty vanilla, but you can really have some fun if you start incorporating other methods such as:
- Paging only has 3 speeds, but you can manipulate speed within your data. You can repeat cells in Sequence to “slow down” the animation.
- Use Different sizes for the same shape to give the impression of growth/shrinking OR depth.
- Change Shapes completely to give the impression of transformation.
- Change colors.
I used all of these methods in my GoCharting demo, and you can create some pretty sweet effects with these additional elements.
For my Gocharting Demo, I included dimensions for Color, Size, Shape, even Text. Our bouncing ball example is tracking a single “object” and lighting up one cell at a time.
To show multiple “lit” cells at once, it’s just a matter of populating multiple Cell Mappings within the same Sequence. This sequence below shows three movements, the red and the orange objects rotating around the center cell, aligning vertically, and then moving out of frame.
For the sake of my own tracking I illustrated to the right what I was trying to accomplish. You’ll notice that sequence 119 and 120 are identical, as is 121 to 122 and 123 to 124. This is because Tableau’s paging function only has 3 speeds. The first and second were too slow for the kind of animation I wanted to accomplish, but if I didn’t repeat “frames” many of my animations would blast through the screen so quickly as to be barely noticed.
By repeating frames of animation I can slow things down a little bit so that they can be seen at a speed of my choosing.
If I wanted to add some extra flourishes to this sequence I could change the shape or size from frame to frame (sequence to sequence) and create extra pops of movement.
Below is another example of GoCharting I put together using the original GoChart mapping from my demo and just creating a new sequence file. It uses movement, color, size, and shape.
Zach Bowders (@ZachBowders) is an analyst at ALSAC St. Jude Children’s Research Hospital
His data passions include ACLED Combat Data, Crime Stats, and data journalism.
Thanks to OK GO (@OKGO) for Inspiration.
David Kelly (@DataDavidDeluxe) for mentorship and friendship.
Neil Richards (@theNeilRichards) for graciousness when I unknowingly re-invented the wheel. Check out his amazing US map Tetris viz!
Lindsay Betzendahl (@ZenDollData) for support and use of her blog.