Cartograms are maps in which the areas of regions (e.g. states or provinces) are rescaled to be proportional to statistical data (e.g. population size or gross domestic product). Cartograms are called ‘contiguous’ if they maintain the topology of the conventional map (i.e. regions are displayed as neighbours on the cartogram if and only if they are geographic neighbours).
Creating cartograms has traditionally been a complex endeavour that required expert knowledge in cartography and programming. However, producing cartograms should not be the privilege of only a handful of experts. Journalists or bloggers, for example, may also benefit from a cartogram as an intriguing illustration of their own data. Similarly, students may enrich a term paper with a cartogram that can summarize data more effectively than raw numeric tables.
In the past, the creation of contiguous cartograms was far from user-friendly. Even experts in data visualisation found it difficult and time-consuming to learn the required computer skills. Scientific publications that introduced new cartogram algorithms rarely included computer code. Some authors of more recent publications have posted their code online (e.g. in this GitHub repo), but their software usually assumes technical knowledge about shell scripting, compiling and geographic data structures. These prerequisites pose insurmountable obstacles for most users. The aim of go-cart.io is to simplify cartogram generation. With a simple interface, we want to eliminate hurdles for non-experts and provide a convenient way to create readable cartograms.
One way to create a contiguous cartogram is to create a map projection that transforms every coordinate on a conventional map such that the projected regions on the cartogram have the desired areas. The fast flow-based algorithm translates the cartographic deformations into physics-inspired equations of motion. The basic idea is to allow densely populated regions to flow into regions with lower population. The equations guarantee that we reach the desired areas at the end of the flow process and that neighbouring regions stay connected. In our paper , we describe several mathematical and computational tricks that speed up the calculation.