I’ve seen a lot of interesting data visualizations lately but have struggled to figure out how to visualize my own data. It seems like there is a vast chasm between creating pie charts in Excel and Hans Rosling’s TED Talks. The I stumbled upon Processing.
Processing was used to create the genetics simulation I described in an earlier post. After looking into it some more, I learned that Processing was developed out of a project at MIT’s Media Lab. It is an object-oriented programming language conceived as a way to sketch out images, animations and interactions with the user.
Examples of of Processing projects include everything from a New York Times data visualization of how articles move through the internet and visually representing data in an annual report to more esoteric and artistic works.
To get started, download the application at http://processing.org and go through some of the tutorials on the site. There are lots of examples included with the download so you can also open them up and start tweaking and hacking them, if that’s your preferred method of learning. Once your code is complete, or after you’ve made a minor tweak, click on the play button to open a new window and see it looks. Once you’ve completed your project, you can export it as an applet, which can be uploaded to a web server, or as an executable file for a Mac, Windows, or Linux computer.
I’ve been through the first half-dozen tutorials and am to the point of making lines and circles dance around. I can even make the colors and sizes vary based on mouse position. I have also opened up some of the more advanced examples and started picking away at them to see what I can understand and what I still need to learn more about. Once I can import data from an external source, it will be really exciting to see the different ways to represent it.
I haven’t had a foreign language learning experience in a while. I am learning (and re-learning) many valuable lessons as I try to express myself in this new language. Not surprisingly, I’m finding that I need a balance between instruction (going through the tutorials) and practice / play (experimenting with the code I’m writing or hacking together). I’m also a bit frustrated by my progress because I can see what can be done by fluent speakers (see examples, above) but am stuck making short, choppy utterances (see my circles and lines, which really aren’t worth sharing.) I plan to both work my way through the basics (L+1) as well as dabble with some more advanced projects (L+10) to see if I can pull them off. If not, I’ll know what to learn next.
Fortunately, I have one or two friends who are also learning Processing at the same time. They are more advanced than me (in programming languages, but I hold the advantage in human languages), but it has been helpful and fun to bounce examples and ideas off of one another. We plan to begin a wiki to document our progress and questions as they arise — a little like a students notebook where vocabulary and idioms are jotted down so they can be reviewed later.
Watch for more updates as projects get pulled together as well as notes on other ways to visualized data in the near future.