Reading and visualizing Finland’s postal code data on a map in Python.

Here you can download the Sample file of Finnish postal code areas for practice.

Python workspace for postal code visualization

The examples work best in Jupyter notebook environments.

If you don’t want to setup Python and the required libraries on your own, you can choose from these options free browser-based Python workspace.

Reading data into Python

Postal code data can be read into Python with geopanads library in GetJSON file format.

Here you can copy the Python code to get started with postal codes.

import matplotlib.pyplot as plt
import geopandas as gpd

input_file = "finland-postal-codes-sample.geojson"

gdf = gpd.read_file(input_file)
#Derive a silly value from postal code to colorize the regions  
gdf["fake_value"] = (gdf["postinumeroalue"].astype("int")-10000) / 30000

fig, ax = plt.subplots(figsize=(10,10))
#Set longitude limits to show in the map
plt.xlim(21.2, 24.5)
#Set latitude limits to show in the map
plt.ylim(59.8, 62)

#Use Finland map as a background
world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
finland = world[(world.pop_est>0) & (world.name=="Finland")].copy()
finland.plot(ax=ax, color="lightgray", edgecolor='gray')

#Plot the postal code on top
gdf.plot(ax=ax, edgecolor="white", alpha=gdf.fake_value)

A simple visualization of postal code data using Python’s matplotlib library looks like this:

The example postal code areas on the map in Python.
The example postal code areas on the map in Python.

With the full postal code dataset you can create similar map than below. You also need to leave out the plot’s x and y limits and possibly the background map.

All postal code boundaries of Finland on a map in Python.
All postal code boundaries of Finland on a map in Python.

Interactive map of zip code data in Python

You can create an interactive map in Python notebooks with the following script. The code requires the folium library to be installed.

import folium

m = folium.Map(
    location=[61.1, 23.1],
    tiles="cartodbpositron",
    zoom_start=8,
)

input_file = "finland-postal-codes-sample.geojson"

folium.GeoJson(input_file, name="geojson").add_to(m)

folium.LayerControl().add_to(m)

m

The map can be zoomed in the notebook and moved with the mouse.

Interactive map of zip codes using Python's folium library.
Interactive map of zip codes using Python's folium library.