Uber Rides by Neighborhood

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.

Caveats: I am not affiliated with Uber. I do not have access to source data, so my transcription may be inaccurate. This page merely serves to illustrate different types of network visualizations.