Circular Migration Plots - Do it yourself!

You might have seen our colourful circular graphics of global migration flows and wondered, how the heck did they do that? Here is a summary of how to Do It Yourself with your own data.

Circular plot showing migration flows between 50 countries in 2005-10

Our VID working paper provides the full details. You’ll also need the paper’s supplementary materials to replicate our plots, or to plot your own data.

We provide instructions on how to create circular migration plots with 3 alternative software packages:

  • Circos: the original; allows for deep customization; my favorite; requires Perl, but no big programming skills
  • R: for statisticians & data miners; less customization but quick to set up; Guy’s favourite; requires some R skills
  • d3.js: Let’s go interactive; customization & interaction; everyone’s favourite; requires sound programming skills; not ideal for printed media

To create circular plots using Circos, you need to install Perl and several Perl modules, dowload Circos and install Cygwin to run it all on Windows.

Once you’ve set everything up, you can create a plot with Circos’ default settings. Be warned: it doesn’t look very pretty. And it probably reminds you of several other visualisations you have seen on the web. People have been using Circos before to show migration, trade or remittances flows, but IMHO with not such great success.

To create a plot that visualises migration flows in an effective and visually appealing manner, use my customised configuration files for Circos (see supplementary materials of the VID working paper). I provide two sets of configuration files with accompanying input data; one for a region-level plot, and one for a country-level plot. Take a look at the text files, replicate our plots, get an idea of what all the settings actually mean, and use it for your own data. Let’s make it the new standard for visualising flows!

Johannes Schmidt created a custom library on Github on how to do interactive plots in d3. Guy Abel also has a R-Bloggers post on how to do these plots in R. For more information please visit

Circular Migration Plots - Do it yourself! was originally published on 26 March 2014