Divvy, the bike sharing system in Chicago, is currently running a Data Challenge after recently releasing 2013 user trip data. I decided to play around a bit with the data just to see trips; when I finally came to something useful I decided to make it more user-friendly and Divvy Spokes was born.
It shows the origin-destination pair of every trip taken in 2013, by the neighborhood in which each the origin and destination station is. The visualization, built with d3.js, is a chord diagram. The relationships create the “spokes” of the wheel.
You can roll over an entire neighborhood “arc” (the edge of the wheel, sorted alphabetically) to see the total number of trips taken as well as the neighborhoods a trip went to. The colors represent the “side” of the city the neighborhood is on: downtown, north, northwest, etc.
You can also roll over a “spoke” to see the exact number of trips taken between those two neighborhoods, in both directions. This also works for intra-neighborhood trips (where a spoke ‘goes back in’ on itself):
Finally, you can filter the data to show all trips, or only those taken by men, women, annual subscribers, and 24-hour passholders. Male/female filtering is only available for annual subscriber trips, since Divvy does not ask a user’s gender when they purchase a 24-hour pass.
Since this is Chicago and everyone has a different idea of what neighborhood they live in, I used the City’s neighborhoods dataset as defined by the Office of Tourism (map). This is a fairly objective source, in my opinion, even if I don’t agree with every location. Also, many stations fall on the boundaries of neighborhoods, which could skew the data. It’s possible that in the future you’ll be able to choose your “neighborhood schema,” but these are the neighborhoods for now.
In this data, the first Divvy stations had only been installed for at most 6 months, and the last were installed just as it was starting to get colder out. It’s not surprising to find that most trips are within the same neighborhood or to one directly adjacent, because most trips are under 2 miles, or somewhere around ten minutes in duration. But you can look at some pretty interesting insights using this diagram, like the large number of people biking between Loop and West Loop (like many of my own commuting trips) is mostly subscribers, but it shrinks for 24-hour passholders. Also, the number of trips in Grant Park and Streeterville – with its tourist destinations – rise a lot (proportionately) for passholders, but are not very strong among subscribers.
The data displayed when you roll over a neighborhood arc or a spoke is proportional to the total number of trips in that dataset, not the total number of trips overall. So you’ll notice that the Loop arc has about 125,000 trips in the “show all” dataset, but shrinks to just under 13,000 trips when the “female” dataset is selected, despite the size of the arc shrinking just a bit. Think of the entire wheel as a pie chart with all pieces adding to 100%.
I can’t wait to see what other projects people have developed with Divvy’s data. Leave any of your insights with this data in the comments, as well as any “nice to see” feature requests that I may get around to. This is my first project with d3.js (and I have to thank Stack Exchange contributors for assistance with the transition aspect of the diagram). I’d also invite anyone who wishes to collaborate to do so via GitHub!