Building a flow map from scrap

By Emiliano Tolusso

Maps are a pleasant and handy way of visualizing spatial data. Choropleths especially are widely employed in the visual description of spatial phenomena. However, as much as traditional maps are a popular solution, they suffer from a fundamental, insurmountable flaw: they conceived as ways to represent static objects, well-contained into some arbitrary border. How can we trace on a map something that is actually in motion across these borders?

Flow maps are a versatile hybrid between a traditional map and a flowchart. As such, flow maps are a well-fitted solution to display the motion of different objects in space in an orderly fashion.

Flow maps, as a matter of fact, are directed, georeferenced networks! They can virtually represent the motion of every kind of object on a plan surface: migrations, trade routes, money transfer. Getting more creative, and more on point with our focus on distant reading, flows may represent citations among geographically recognizable institutions retrieved from a set of papers. All you need is a couple of coordinates (X, Y; Long, Lat), and any flow can be effectively charted. is a useful resource to quickly build a flow map from scrap. It offers many advantages:

  1. You don’t need to write a single line of code or to open a GIS system.
  2. It is based on Google sheets.
  3. The maps are pretty cool!

Let’s see how it works.

The website offers a basic overview of the necessary steps to create a flow map.

The template is composed of three tabs: properties, location, and flows.

The properties tab controls the metadata of your flow map: title, description, author bio, etc. The locations tab contains the set of coordinates we are to connect with our flow map. It sets the nodes of our map. The “flows” tab contains a table we need to fill to draw flow paths between the nodes. In other words, it creates connections.

Let’s see an example of the necessary workflow. In my case, I want to visualize the flows of citation among institutions involved in the study of climate justice. Here is an agile subset ideal for our purpose:

Origin Destination Citation flow
King’s College Oxford University 7
King’s College University of Zurich 3
University of Zurich Oxford University 4
UCLA Edinburgh University 9
UCLA King’s College 3
Edinburgh University Zurich University 2
Università degli Studi di Milano Zurich University 3
Bern University Università degli Studi di Milano 1


Before we start working with our sheet, let’s make a copy of it. We will work on the copy rather than the original (file > make a copy).

Now we must import the table in the locations tab:

Wait a minute, how do I get those coordinates? Whether or not you are an expert in ellipsoids, datums, and cartographical projections, the Geocoding tool incorporated will come in handy. The built-in geocoding algorithm (I think this is more of a geoparsing algorithm, but let’s stick to the definition) associates a set of two coordinates to the toponym we introduce. It is fairly precise, as I tested it with my Alma mater institution, the University of Milan.

All we have to do now is to include all our locations, press the geocode button, and copy-paste the coordinates in our Google sheet. The result should look like the following:

We have set nodes of our map, but we still have to insert any information about the relationships we meant to trace. It is time to turn our attention to the “flows” tab. If you are lucky, and your data is already organized in a table similar to mine, all you have to do is to insert the values from the id column for every institution, alongside with the value of the flow we are going to trace. offers another exciting tool in the timing of the flows, allowing the author to incorporate a temporal dimension in the map. In my case, the variable is outside of my interest, so I will leave it blank. Wait a moment, you might have not been as lucky as me, and your data are stored in a proper OD (origin-destination) matrix. Worry not! There is another tool for you, the OD matrix converter. It will dismantle your OD matrix and rebuild it in a flow map friendly arrangement.

We are almost ready to visualize our map. We just need to check all our metadata in the “properties” tab.

I am going to add the following information: title (row2), description (row3), (row4), and (row6). For complete control of the final look of our map, we could integrate our mapbox style (if you are already familiar with the tool; otherwise, I suggest waiting for the next tutorial). I also want to select the color palette for the flows (row10): my newly discovered passion for emerald can be adequately expressed now. I also want my flows to be animated: row12 allows the author to enable dynamic visualization.

We are one step away from generating our map! To access our data, needs you to set the accessibility of your sheet. Just click the share button and switch the selection from restricted to anyone with the link.

We are now ready to witness a flow map arising from the tables: just copy the Url of your spreadsheet into the homepage mask (point 5 in the first picture). Click here to admire the final result.

Even if the structure is rather simple, the map is pretty neat, isn’t it?

We can create all sorts of maps, and if you happen to be kind of an expert in Excel o R, you can work with more massive datasets. Check this map I created, based on the co-authorship relations retrieved from a Dimensions dataset.

Travel responsibly!


This entry was posted in Data-Driven Research, Maps. Bookmark the permalink.