Uber Rides by Neighborhood

Mouseover to focus on rides to or from a single neighbor­hood. The thickness of links be­tween neighborhoods encodes the relative frequency of rides between two neighborhoods: thicker links represent more frequent rides. Links are directed: for exam­ple, while 2.2% of rides go from South of Market to Downtown, only 1.2% go in the opposite direction. Links are colored by the more fre­quent origin. Scroll down for more! Built with D3.

Source: Uber Blog.

I enjoyed Bradley Voytek’s post today analyzing the frequency of rides between various neighborhoods in San Francisco. However, I wondered if an alternative network visualization might better reveal patterns or anomalies in the data. Complex networks (a.k.a. “hairballs”) are hard to visualize well!

This dataset is particularly interesting because it has directed edges. For example, there are twice as many rides from South of Market to Downtown than in the opposite direction. You can’t see directionality in the original visualization because only a single edge is drawn between each node. (Or perhaps the smaller edge is occluded by the larger one.)

Some alternatives I considered:

A matrix diagram visualizes the adjacency matrix of the network by showing a two-dimensional grid; each cell in the grid encodes the relative frequency of rides from neighborhood i to neighborhood j. These are great for finding clusters (with appropriate sorting) and central components, and for looking at individual connections. Unlike a node-link diagram, though, you can’t use geography for positioning.

A chord diagram arranges the nodes (neighborhoods) radially, drawing thick curves between nodes. The thickness of the curve encodes the frequency of rides between two neighborhoods. Like matrix diagrams, chord diagrams reveal asymmetries: if a chord is tapered, there are more rides from a given neighborhood than to it. The above chord diagram might be better reordered to correspond with geography.

If I had more time, I might also take a look at hive plots, which are a bit like radial parallel coordinates. I’m not sure what axes I’d use for this dataset, though.