Tutorial: How to make beautiful maps with no code — and a free program

We’re often asked how we make our interactive maps — and the answer involves knowing some code. But maps often don’t need to be interactive. You just need them to show the data — and be aesthetically pleasing. Even that little task can be overwhelming.

So in this post, we’re going to walk through how to make a beautiful static map without knowing a lick of code.

There are some annoying quirks to work through, but be patient. There is nothing technically hard here. But if you hit a snag, let us know in the comments or e-mail me.

Installing QGIS

There are some very expensive computer programs that help you explore geographic data. But we’re going to assume that, like us, you don’t have thousands to spend on mapping software. So a wonderful, free and open-source alternative is a program called QGIS.

Figure out if your computer is 32 bits or 64 bits. If you don’t know, use this guide.

Download the corresponding file.

For Mac users, it’s a little tougher.

Click here to download a required library. Click on the downloaded file to install.

Click here to download another required library. Click on the downloaded file to install.

Finally, click here to download QGIS — and click on the downloaded file to install.

How mapping (usually) works

Let’s do a quick remedial lesson.

Generally, mapping involves finding data that describes geographic areas — and layering them so they provide the proper meaning.

Take a look at the image here, and you’ll notice that there are some layers that are aerial pictures of a given area, and other layers that are overlays to help humans better understand what is there. For example, you need city names to help you navigate a map, but when you take overhead pictures of Connecticut, they don’t come with names embedded into the hillside.

So what we’ll be doing in this post is finding a “base map” — in our case, we’ll use aerial pictures, but road maps also work well. Then we’ll find a data file that augments that map, and we’ll overlay it on top.

Let’s explore the interface

The QGIS interface can be overwhelming. There are so many buttons! But don’t fret. For now, all you need to know is that the left pane — “Layers” — is where you will see the two layers we’re going to use. The right pane, which looks empty here, is where you’ll see the map.

The other thing to notice is the top menubar. We’ll use this in the next section.

Adding a base layer

In the top menubar, click the “Plugins” menu and click “Manage and Install Plugins…”

You’ll see something that looks like this:

This is a list of mini-programs that people have built to help you perform complicated tasks. In our case, the task is to grab a map from another place on the internet and bring it into QGIS. So we need to search for a plugin called “OpenLayers Plugin” using the search area at the top of this window. Click “Install plugin” on the bottom right.

After some magical loading bars, nothing will happen. Instead, you’ll have to go to the top menubar and click “Web” — and you’ll see OpenLayers plugin waiting for you. When you hover over it, you’ll see a bunch of map options. Click one! See what happens! And then click another!

You’ll see base layers loading on the map screen, like this:

But as you load more maps, they just layer on top of each other. On the ‘Layers’ pane on the left, you can see all the maps you’ve loaded in the list. Get rid of the ones you don’t want by right clicking and selecting “Remove.”

Getting geographic data

Your organization might have some geographic data. It might come in various formats, like: KML, GeoJSON, SHP files and many more. The beauty of QGIS is that it can open most of what you throw at it.

Find a dataset that interests you and click the corresponding “Shapefile” to download the data. I’m going to use 2010 state Senate districts.

It will be a zip file, which you can double click to “unzip.” Inside the unzipped file, you will see two folders titled “nad83” and “wgs84” — both of which QGIS can handle. In short, they are different coordinate systems. For our purposes, let’s open up the folder “nad84” and find the file title that ends with “shp” which indicates it’s a shapefile — data that can be mapped.

Drag that file into your QGIS window and zoom into Connecticut. (Zooming can be hard with the mouse wheel so you can try using the zoom buttons at the top of the QGIS window.

You can reorganize the order in which the layers are drawn on the “Layers” pane by dragging one or the other to the top.

Setting styles

Now you can see the two layers, but you can’t see through the top layer showing Senate districts. Let’s fix this.

Right click on the Senate district layer on the “Layers” pane. Select “Properties.” You’ll see a window like the one below under the “Style” menu:

Adjust the transparency or change the color. If you want to change the border or try out other styles, click on the “plus” icon on the left side and create a new style. Here’s my map with a “transparent” fill and a dotted, white border.

Labeling the map

But now you’re thinking: I don’t know what districts these are! I need labels.

Again, right click on the Senate district layer on the “Layers” pane. Select “Properties” and click on the “Labels” menu. Set the styles thusly:

And you’ll get a map that looks like this:

It’s kind of bad, though, because you don’t need the words “State Senate District” in each one. Let’s fix that. Go back to the “Labels” menu and click this button:

And type in the following in the little textbox:

What we’re doing is replacing the words ‘State Senate District’ with, well, nothing — which is represented by two single quotes. You can explore the other commands if you’d like, but “replace” is probably among the most useful. Remember to use single quotes.

Click OK.

Ah, much better:

Exporting a nice image

You could just screenshot the map. Or you could use something called “Print Composer.”

Go to the top menubar and click “File” and then “New Print Composer.” Type in a name for your composer.

Let’s be honest here: This screen is not intuitive. But all you need to know for now is to click this button:

This will turn your mouse into a crosshairs, which you can use to create a map into whatever shape you’d like. (It takes a little time for it to generate. Be patient.) Then you just need to click the corresponding button to export this image in the file format of your choice:

Conclusion

This process gets much easier with time, and you end up being able to make some really beautiful, complex maps, like this one we made at the Mirror. Notice how we used three different layers here — the water, the rail line and the base map.

As always, if you get stuck or have better suggestions, let us know in the comments.