Background Sankey plots have been used to visualize bilateral migration many times. My favorite examples of Sankey plots for migration data tend to be when there are only few regions or countries.
Introduction The tidycat package includes the tidy_categorical() function to expand broom::tidy() outputs for categorical parameter estimates.
Documentation For full documentation, see the package vignette: The tidycat package: expand broom::tidy() output for categorical parameter estimates
We have had a number of requests for the R code to replicate the plots in our paper on internal migration in China. The code below will produce a similar looking plot, but I have taken out some of the arguments that were very specific to our plot that will not replicate well for other data.
Background A little while ago my paper in International Migration Review on global migration flow estimates came out online. The paper includes a number of directional chord diagrams to visualize the estimates.