Mapping your reading

Map over my 2018 reading made in QGIS

Map showing the countries I’ve read from during the first six months of 2018.

The complete guide to an unnecessarily complicated way of mapping your reading

Loyal readers of this blog may have noticed that I enjoy mapping my reading so I thought I would present you all with a guide on how to do these maps. Unfortunately the way I do it is way too ambitious for such a simple task but if you want to go deeper into the art of map-making this may be a good place to start. A much simple option is just to google “map countries I’ve been to” and use any of the free map generators.

Start to keep track of your reading

No matter what alternative you choose for mapping your reading, the first thing you need is to keep track of it. I use a simple spreadsheet where I have one column with countries and one column with the number of books read by authors from that country. I update the numbers after each book I read and add new countries to the list whenever needed. We are not actually going to link this table with our map (although it is possible) so this time a paper list will work equally well.

Install QGIS

If you want to do it the complicated way the first thing you need is a GIS program. I recommend QGIS which is free and open source but if you have another GIS program such as ArcGIS that will also work (but then you can’t exactly follow this guide although the principles are the same).

GIS programs are not primarily programs for making pretty maps (although they can be used for that) but for analysing geographical data (GIS means Geographic Information System). If you ever want to calculate how many children that lives within a kilometer of a library, a GIS program is what you need (plus databases with information on where all libraries are and were all children lives). In short GIS programs include loads of functions we will completely ignore in our simple mission to show our reading on a world map.

QGIS together with installation instructions can be found here. I’m using QGIS 2.18.7 for Ubuntu for this guide but we will only use standard procedures so I doubt they change noticeably between versions from the same generation. I therefore recommend using either the latest release or the latest “Long term release repository”.

Download country borders to use in your map

Natural Earth is a great source of free map data. In this case we are only after the country borders but do take a look around the website and see what else they have got. If we greatly over-simplify things we can say that the raster data they have is ready made images for your maps whereas the vector data is things you can play around with and adapt to your liking. We are planning to play with our data so we want vector data.

More precisely we want this data set with country borders adapted for a small-sized world map. Or, if you are planning a regional map, either this one, or this one (most detailed), which both include more details.

  • Download the map data of your choice and save it somewhere where you can find it again.
  • It will download as a zip-file so you need to unpack it. If you right-click on it you probably have an option to Extract or similar, that is what you want to do.

Create a new map

Now we finally have everything we need to create our map.

  • Start QGIS
  • Create a new map by selecting Project -> New
  • Add your country borders by selecting: Layer -> Add Layer -> Add Vector Layer and select Browse. Find the map data you downloaded and select the ne_110m_admin_0_countries.shp file (if you choose one of the more detailed options it will instead be called ne_50m_admin_0_countries.shp or ne_10m_admin_0_countries.shp). You should now see a world map with country borders.
  • Go to Project -> Save to save your GIS-file.

Add your data

  • You should have a part of the screen called Layers Panel where the map you just added is listed. If not, go to View -> Panels and select Layers Panel from the drop-down menu.
  • Right-click on your map in the Layers Panel list (called ne_110m_admin_0_countries or similar) and select Open Attribute Table.

You have now opened a table with country information. What we want to do here is to add the information about your reading to the table.

  • Click on the small pencil symbol in the upper left corner, this allows you to make changes to your table.
  • Press Ctrl+W to add a new column to your table. A window opens where you can select the properties of your new column.
    • Give it a name, for example Read2018 (avoid blank-spaces or other special characters).
    • Also decide what sort of data you want in your column (numbers, text etc.). If you are listing the number of books you have read you will only be using integers (numbers without decimals) so select Whole number (integer).
    • Press OK and your new column will be created and can be found after (to the right of) the existing columns.
  • I find it easier to have the list of my reading next to the actual country names rather than behind a lot of information I don’t care about. To arrange it that way, right-click on the top (title) of your new column, and select Organize Columns from the drop-down menu.
    • Choose Unselect All and then reselect (click on the box for) ADMIN (country names) and the name of the column you just created. Click OK and you will see a much simpler table with only the information you are interested in (if you took away too many of the columns you can open Organize Columns again and reselect the ones you want).
  • Start adding the information about your reading. To do this, just click on the Read2018 column (or whatever you called your new column) on a line for a country you have read from and write the number of books you have read from that country. Then continue to the next country by clicking on the line for that one.
  • When you are done, press Ctrl+S to save.
  • Click on the small pencil symbol again to leave the editing mode.
  • Go to Project -> Save to save your GIS-file.

Show your data on the map

Now all the data is in but you still have to do a few things to make it visible.

  • In the Layers Panel, right click on you map (same as when you opened the table) and choose Properties.
  • In the window that opens, select Style.
  • At the top of the new window you now see a field saying “Single symbol”. Click on it and change it into “Graduated”.
  • You now see a field called “Column”, click on it and select the column with you new data (e.g. Read2018 if that is what you called it earlier).
  • In the field “Color ramp” select a color ramp you like.
  • In the field “Classes”, select the number of different colors you want to use. If you select the same number as the maximum number of books you have read from a single country you will get a different shade for each number. (Some final tweaking may be needed to make this work perfectly but you should get close enough in this way).
  • Click on “Classify”
  • Click on “Apply” to see your new map.

Most likely you new map will be missing a lot of countries, that’s because you haven’t told the program what to do with the countries you haven’t read anything from.

  • In the “Style”-section of the “Properties” window (where already you are unless you just closed it), click on “+”. You will now have a new entry in you list of classes. Most likely it has the values 0.0000-0.0000 which is what you need. You can however click on the numbers to change them if you want to specify some other numbers for some reason.
  • Click on “Apply” again and the missing countries should be back.
  • Go to Project -> Save to save your GIS-file.

Make your map pretty

If you are unhappy with the colors or the line thickness or something, these can also be adjusted in the “Properties” window.

  • Double-click on the symbol you want to change in your list of classes. A new window will open.
  • Click where you see the text “Simple fill” and you will get options for changing the fill color, line color, line width etc.
  • When you are done, click “OK” which will return you to the “Properties” window. Click “Apply” to see your new map.

The final thing we are going to change is the map projection. Drawing a three dimensional Earth on a two dimensional screen means that compromises have to be made but we can select compromises that are not too misleading or ugly.

  • Open the “Properties” window again (Right-click on the name of your map in the Layers Panel).
  • Select “General”.
  • Find the small symbol that looks like a globe with a cone-shaped hat. It should show “Select CSR” when you hover over it (on the right-side of the window). Click on it.
  • You will now see a long list of Coordinate systems of the world. If you know the name of one you like you can use the “Filter” field to search for it. For my world maps I’m using one called World_Robinson¬† EPSG:54030.
  • Click on the coordinate system you want and click “OK”.
  • You are now back in the “Properties” window, click “Apply” to see how it looks.
  • If your map disappeared, click on the “Zoom full” symbol in the main window (magnifying glass with arrows) or press Shift+Ctrl+F.
  • Go to Project -> Save to save your GIS-file.

Export your map

The only thing we need to do now is to export the map.

  • The simplest export option will make a .png image of whatever is shown in your main window so zoom in or out in you map until everything you want to show is visible.
  • Go to Project -> Save as image (in the main menu)
  • Save your file somewhere you can find it.
  • Go to Project -> Save to save your GIS-file so you can use it for future maps.

Congratulations, you are done! Please let me know if it worked for you.