Source: American Community Survey 2012.
I always have a bit of a hard time parsing exactly what’s going on within these Circos-style visualizations. Walker’s graphic allows you to hover over a given state to highlight only those migrations, which helps quite a bit.
I thought there might be a better way to display these data, but I wasn’t right. I stuck with a map, drawing circles for each state sized by net migration (comings minus goings) and colored according to whether the state gained or lost residents overall. To get at individual state flows, click a state - paths radiate inwards and outwards from state to state, depending on the net migration flow between the two.
I initially drew two lines for each state-to-state connection - one for comings and one for goings. But this quickly became messy and chaotic. I settled on a single line for net flows, but still something of a hairball effect remains. I’m inordinately fond of the path animations (I followed Mike Bostock’s stroke dash interpolation example for these), which are super-helpful in conveying the movements between states. But they don’t completely solve the hairball problem.
I also attempted displaying the data in a sort of grid (not shown), similar to what Moritz Stefaner did with his Musli Ingredient Network graphic. But even when sorting the rows and columns by region to add some structure, this approach was not at all an improvement over the original.
I suspect that with additional tweaking the map version could be improved upon and clarified further (toggling between raw values and percentages? Allowing users to toggle between comings, goings and net? Updating the state circles whenever the paths are drawn?). But in the end it was quite difficult to improve upon Chris Walker’s original work - kudos to him!