Postal codes numbering is an excercise that all states conduct differently. Some go from one end of the country to another. Some previously cut the country into regions. Others start numbering cities and then take into account the less urbanized areas, etc …
This post provides a set of maps of postal codes in the world, according to the same principle: the low numbers are colored in red and the high in blue. Although limited, this exercise helps to figure out the different administrative organizations of postal services.
Postal/ZIP codes numbering around the world
A complete gallery of postal codes of the 26 Swiss cantons is available on the Hebdo DATA blog:
These visuals are inspired by the work of Robert Kosara (The US ZIPScribble Map), Ralph Straumann (ZIPScribble Map: Switzerland / Interactive ZIPScribble Maps) and Ben Fry (zipdecode). Have a look at their blogs as well!
NOTES Software used: Gephi (+Inkscape). Datasets: geonames.org (all sets are not of the same quality, like Belgium (here above) or Czech Republic (here under) where we can clearly distinguish lines of points). Czech Republic and Slovakia have the same postal codes numbering system.
How about Britain?
As it is alphanumeric (and not only numeric), it’s not easy (impossible?) to find a low/high postcode logic… If you’re an English(wo)man, do you have any advice?
Here’s an idea. Map the initial letters (usually two, but occasionally one) into a numeric value, such that A is low and ZZ is high. Ignore the rest of the postcode. I’d expect the result to look a bit like Spain’s but with more and smaller regions.
I’d be interested to see France and New Zealand.
Right, but in this case, maps of regions exists already… :-/
The french dataset is a bit messy, but I’ll try to clean it (and have a look at New Zealand).
For Canada, this isn’t even a difficult problem, just another lexicographic ordering. Let the color reflect the position between A and Y. Let the finer gradations of color reflect the second character, a digit. Actually, the coloring here already provides a crude preview: http://en.wikipedia.org/wiki/List_of_postal_codes_in_Canada
Mark Fryer’s solution is probably the most sensible implementation: Just lead with an ASCII byte, or however you want to represent the first letter, to coerce it into a number. But theoretically, you don’t even need to coerce it into a number.
In the UK we have more implementation questions. How do we compare B99 (Birmingham) with BA1 (Bath)? The alphabetical “jumping around” from one end of the country to the other is not a problem; France and Spain have alphabetized systems too, only rendered in numerals. Here’s a UK map: http://www.direct-marketing-lists.co.uk/postcode_map.htm
Can you, please, try to make this map for Czech Republic and Slovakia? They are small countries, I believe it will not be very difficult 🙂
Here you are! But it seems that the dataset does not contains the region of Trenčín…
Thank you! Our postal code is named PSČ (poštovní směrovací čísla), I believe there is some way to get name-number db, but don’t know, how to get locations. (especially for few points in Trenčín:))
Yes, Czechoslovakia still lives in the postcodes.
Just a note: the Eastern Slovakia has rather the highest numbers than the smallest numbers, their numbers start with ‘0’ meaning ’10’ in their case (because Prague had to have ‘1’ and not ‘0’) (e.g., one does not use 4001 for Kosice, but 04001)
I second this motion!
Here you are 😉
Mexico looks all over the place, but the numbering approach is straightforward: They are by state alphabetical order. So, lowest is Aguascalientes and highest is the neighbor Zacatecas.
Hello, Martin. I’m a blogger from Poland. I write about data journalism. My readers are interested in data visualisation. I’m sure that they loved to see your postal map of Poland (so am I). I will be verry thankfull if you would like to create it.
Done! A spiral structure, such as Germany, the Netherlands, Belgium, and Norway
I did not expect such a quick response! Thanks, Martin. I will share it via datablog.pl with my readers and – ofcourse – I will link to your website.
How about Japan?
Unfortunatelly, the dataset is not complete for Japan: codes 01-09 are missing (North), which gives the following map:
how about Canada???
Done! (but I’ve had to change the alphanumeric to numeric)
Hi what about France ? Very nice job 🙂
Le problème de la France, c’est que comme les départements sont numérotés selon leur ordre alphabétique, la carte ne montrera rien de plus que les frontières des départements (comme pour l’Espagne ou le Mexique), et pas un dégradé. De plus, les données ne sont pas très propres pour la France, dans les fichiers que j’utilise ici, ça demande donc un travail supplémentaire qui ne sera pas récompensé par une carte très originale… :-/
In these cases, I guess is more interesting to look at the second-level maps, like the Swiss cantons you already showed.
Dare you to map Costa Rica.
Unfortunately, Costa Rica is not in the geonames (link above, in the “notes”) datasets… Do you know where I can find it?
Could you please do the map for Canada? It would be interesting to visualize the assignments of LDUs
India would work surprisingly well, I believe.
Right! you’ll find it in the “updates” section.
Very nice, have you considered doing the same for phone prefixes? That would let you cover UK, for instance
Good idea. Is there a file somewhere?
There is list for the UK:
and this list for italy:
you will need to turn town names into coordinates somehow (google maps API maybe? Would you need help?)
I’m from the US, so the most interesting request I can make is: How about ability to “drill down” into just a first-digit region?
For example, “9” is the West Coast, but effectively the 9 zone could function like its own country: The low numbers (90xxx) are the most populous part, Los Angeles, and everything else fans out from there. Up to 96 is all California, 967 and 968 are Hawaii, 97 is Oregon, 98 and 99 up to 994xx are Washington, and 995x up to 99950 are Alaska.
But that’s getting greedy, and I’d rather see more first-level maps of new countries than second-level maps of my own.
Good idea, I’ll see if I find a couple of minutes to get to this second-level for the 9 zone. By the way, I already did that for Switzerland: http://www.hebdo.ch/les-blogs/grandjean-martin-data-société/en-cartes-la-suisse-des-codes-postaux
Here you are, I mapped the West Coast (see in the updates above)
In looking up Canada, though, I find that there’s a delightful little discontinuity in the system at H0H 0H0. (H would otherwise be in Montréal, but H0 seems to be entirely outside of Canada.) I wonder if I’ve made anyone curious enough to look it up?
Could you do South Korea, please?
Sorry, I can’t find South Korea in the geonames (link above, in the “notes”) datasets… Do you know where I can find the data?
Please do France 😀
Comme évoqué ci-dessus dans les commentaires, comme les codes postaux en France commencent tous par le numéro de département et que ces derniers sont donnés par ordre alphabétique et pas géographique, la carte ne donnera qu’un damier des départements, ce qui ne vaut pas vraiment le nettoyage de toutes les données…
Is it possible to view the data in a map for the UK ?
As I answered above, the alphanumeric nature of the UK postcodes does not allows such a map :-/
Hello, please, add Bulgaria! Thank you in advance!
Can you add Bulgaria too? I think I can help with the postal codes.
Hi! This looks interesting. Maybe you can do Romania as well
You can use this API
I just noticed they have a query limit of 5
There is also this SQL data http://www.cipy.ro/wp-content/uploads/2011/01/coduri_postale.zip
Bonjour. Nous vous serions très reconnaissants si vous pouviez nous aider à visualiser les codes postaux du Costa Rica. . Merci.
Bonjour, ça fait bien longtemps que ce post a été publié, mais comme j’ai trouvé une minute et que le dataset du Costa Rica est disponible, je l’ai ajouté !
Merci beaucoup Martin.