The concept of “stream graphs” were widely popularized by the New York Times when they published a now famous graphic of box office numbers over time using a stream graph, which is a stacked area graph that is displaced around the x-axis to make an organic flowing shape.
I think I first saw a stream graph that Amber Case was showing off after coming back from a conference. She was using a web based app that someone had wrote that graphed the most used words on twitter about a particular search term.
Use Case: Twitter
Another place where there is lots of volatile data is twitter. In fact several years ago someone wrote a program to search the last 1000 tweets containing some search term and then draw a graph showing words inside those tweets popularity over time. The result was surprisingly effective at showing conferences because the graph would grow and shrink roughly in proportion with how good a speaker was, and what he or she said that was most interesting.
In general stream graphs are good for any kind of bin-able data that evolves complexly over time.
The Problem
The problem with the web app Amber was using is that it's pretty limited. There is no way to go further back than the last 1000 tweets and any data that is collected is immediately graphed, instead of being saved for further breaking down and analysis. Plus there is no way to change the colors or scaling.
I wanted to help. It took me a while to figure out where to start. Eventually I found a paper filled with wonderful mathematical descriptions of how to draw stream graphs. And at the same time I discovered how easy it is to write in python. So I wrote a simple python class that would take some arbitrary set of data (a list of a list of points) and draw a pretty stream graph in SVG.
You can too!
Amber's friend Aaron Parecki is a Portland based developer who took my stream graph class and, using his twitter API key and database skills, finally fix Amber's conference graphing woes. I open sourced my code at github where you too can start making stream graphs of your own out of any data you want.
Amber, Aaron and I presented an overview of our work at the Portland DataViz users group in Portland, Oregon on April 29th. You can see the slides to my part of the talk here:



