Nichole Stockman | MAT259: Visualizing Data | Winter 2011

Project 1: Checkout Duration Visualization



The idea of this project is to show the average length of time for which books of different categories are checked out. By doing this, certain trends may become apparent regarding how checkout durations have changed over time or if books on certain subjects are typically checked out longer than others.

This project visualizes checkout duration data for all books checked out and returned between 2005 and 2010. That is, it seeks to show the average lengths of time (in days) for which books of different categories are checked out. It shows the breakdown according to the year, month, and/or day on which they were checked out.


This project uses an XML dataset stored in a mySQL database containing information on checked-out items (books, cds, movies, etc.) from the Seattle Public Library. The data has been continuously recorded since August, 2005 and includes information from earlier dates.

Design Process:

Original Idea

At first, I wanted to look at the length of time books were checked out based on which day of the week they were check out on. However, I felt there would likely be more observable trends if I graphed checkout duration according to subject (Dewey) category instead. To begin with, I simply plotted the durations (in days) for three Dewey Categories:

I could already see what seemed to be a decreasing trend in the checkout durations for each category from 2005 to 2010. However, the visualization itself lacked any labels (above is a screeshot with a key added in) and used very garish colors so a lot of work still needed to be done.

I also felt that the data looked very cluttered even showing only three categories. My first thought for a solution was that I could use a drop down menu for the user to select specific weeks to view, as shown to the left in this sketch:

However, I like direct interaction with the plot itself much better and feel that it is much faster and more satisfying for the user. So instead, when the application starts up, it displays an overview: the averages for each category of each year. Then, the user is able to click on a year and see the averages for each month, but is also still able to switch between years while still in "month-view mode". Months can similarly be zoomed in on.

Some final changes included a button that allows the user to toggle between showing averages for each of the 10 major Dewey categories or seeing the averages for each of their 10 subcategories. There is a lot of information shown in this view so I included mouse-over highlighting that makes all bars of the same category more easily identified and also displays the name of the highlighted subcategory.

  • Click on year or month labels to show more detailed data for that year or month.
  • Click the sentence in the upper right corner to switch views
  • Scroll over bars to display the name of their subcategory (only works in subcategory view)
  • Notes:
  • The data shown only refers to books (no CDs, etc).
  • The column width represents an average checkout duration of 6 months.
  • Any items checked out for longer than that were considered to have been checked out for exactly 6 months.
  • For example, on average, Literature books checked out in January 2005 were checked out for 6 months.

    Built with Processing

    Source Code:
    Program Files:

    duration_vis date_objects

    Data Files:
    (Please be patient if they take a few seconds to load.)

    dayDurations monthDurations yearDurations

    Other Files: