January 2, 2015

Books I've Read Visualization

I am the product of my experiences, and a significant part of my lifetime experiences are the books I have read. Strangely enough, I have kept track of every non-work (and many work-related) books that I have read since 1991. I used to write these down on paper, but a few years ago I started keeping track of them on goodreads.com. Goodreads is a fine service, and offers a nice way to see what your friends are reading.

But Goodreads does not offer any way of seeing any overview of the books one has read, and loses the opportunity to gain any insight into a person's overall readings.

So I created an interactive visualization to try and understand what the 246 books I read over the last 24 years actually were. Go try out the interactive visualization (which is not mobile friendly), and then finish reading this. The visualization is based on Keshif, a free and general tool built by Adil Yalcin, a grad student working with me. It works by showing "facets" of the dataset and supports very lightweight exploration by mousing over the facets to see how they interact with other facets. For example, in 2014, I read a lot by Hugh Howey (I loved Wool!), and those books were mostly written in 2009 or later. Also, I clearly got re-hooked on science fiction.

This approach lets you see things like most commonly read authors and genres. Also when I read books. For example, you can see that I read a lot in 1992 right after I finished my B.S. during my "gap year" when I lived in Alaska. I also started reading significantly more books 3 years ago - exactly when I bought my Kindle - which seems to be consistent with what others have found.

Anyway, take a look and see if you can learn anything else about me. Also, the code is all freely available, and shouldn't be too hard to adapt to your books if you are a bit of a web hacker.

Some technical notes:
  • Data comes straight from Goodreads API, but I downloaded it to avoid cross-site permissions issues.
  • Goodreads does not provide book genres through their API, so I manually created those in a google docs spreadsheet and load them separately and merge the two data sources.