For our project on the Luxembourgish family names, I recently created a server-side cartography tool with the possibility to map the proportion of a family name in a given region as a pie-chart. The advantage of this technique lies in the possibility to combine the relative frequency of more than one family name at the same time, allowing for the comparison of multiple regional structures on one map. The disadvantage, however, is that regional patterns may not be as obvious as they should be, as maps may be crowded with too many pie charts. Nevertheless, it is the only way at the moment to produce those combinational maps. This cartography tool is available here.
In order to try something different, I started to map the same data of the regional distribution of family names on choropleth maps. I have spent time (quite some, I have to admit ;-)) experimenting with d3.js to create nice, interactive maps. D3 – Data-Driven Documents – is a rather recent wonderful Javascript library to create and manipulate SVG for, e.g. charts and maps.
In the following example, d3 uses various geocoded data (polygones for regions in France, Germany, Luxembourg and Belgium, country borders, populated places, rivers) and the data for the relative frequency of a family name in a given region (a département in France, a canton in Luxembourg or a 3-digit postal code in Germany). Some js codes then glues everything together. The example below shows the distribution of the family names Schmitz, Smits and the pattern neatly shows the high incidence of these names in the Northern Rhineland area, Luxembourg and parts of Flanders and Wallonia. Lightes shades of blue indicate zones of decreasing incidences.
This technique is very fast and of course implemtenable into a dynamic atlas of family names. As a starting point I have set up a demonstration site:
Click here to display the maps for several other family names
The map draws basically on the choropleth map example and the Let’s make a map tutorial by Mike Bostock. I also used topoJSON to convert GeoJSON data, which allowed for substantial smaller files.
Todo: The legend is not working properly (minimum and maxium of the relativ frequency is not displayed correctly). As a client-side solution, all data, e.g. for the distributions of family names, is accessible through the web browser, what I would like to restrict for various reasons. Hence, I am looking for a more server-sided solution to create the same maps (save the SVG one the server as PNGs?).