Usage¶
map-nl currently has two classes to help you create a PC4 map of the Netherlands: MapNL
and ChoroplethMapNL
.
ChoroplethMapNL
a wrapper around folium.Choropleth
,
and MapNL
is a wrapper around folium.GeoJson
. Both require
a pandas DataFrame with at least two columns; one containing the PC4 codes, and one containing a value to plot. For example:
pc4 | WOZ |
---|---|
2343 | 200 |
3544 | 250 |
... | ... |
ChoroplethMapNL¶
ChoroplethMapNL
allows you to create a PC4 choropleth map of the Netherlands.
An example is shown below.
import pandas as pd
from map_nl import ChoroplethMapNL
df = pd.read_csv("https://raw.githubusercontent.com/fpgmaas/map-nl/main/data/woz-pc4.csv")
m = ChoroplethMapNL(geojson_simplify_tolerance=0.0001).plot(
df,
pc4_column_name="pc4",
value_column_name="WOZ",
legend_name="Average WOZ Value"
)
m.save("map.html")
Any other keyword-arguments passed to plot()
are passed on to folium.Choropleth
. For example,
in order to change the colorscale that is used to fill the polygons, you could do:
m = ChoroplethMapNL(geojson_simplify_tolerance=0.0001).plot(
df,
pc4_column_name="pc4",
value_column_name="WOZ",
legend_name="Average WOZ Value",
fill_color = "OrRd"
)
For more customization options, see the documentation of folium.Choropleth
.
MapNL¶
MapNL
allows you to create a custom PC4 map of the Netherlands.
An example is shown below.
import pandas as pd
from map_nl import MapNL
def get_color(value):
if not value:
return "grey"
if value > 500:
return "green"
else:
return "blue"
def style(feature):
return {"fillColor": get_color(feature.get("properties").get("WOZ"))}
df = pd.read_csv("data/woz-pc4.csv")
m = MapNL(geojson_simplify_tolerance=0.0001).plot(
df, pc4_column_name="pc4", value_column_name="WOZ", style_function=style, name="WOZ value"
)
m.save("map.html")
The above example will color any PC4-areas with a average WOZ above 500 green, blue if it is below 500, and grey if no average WOZ was found.
Any other keyword-arguments passed to plot()
are passed on to folium.GeoJson
. For example,
in order to modify the default tooltip, you can define your own and provide that to the plot()
method:
tooltip = folium.GeoJsonTooltip(
fields=["pc4_code", "gem_name", "WOZ"],
aliases=["PC4:", "Gemeente:", "WOZ:"],
localize=True,
sticky=False,
labels=True,
style="""
background-color: #F0EFEF;
border: 3px solid black;
border-radius: 10px;
box-shadow: 10px;
""",
max_width=800,
)
m = MapNL(geojson_simplify_tolerance=0.0001).plot(
df,
pc4_column_name="pc4",
value_column_name="WOZ",
style_function=style,
name="WOZ value",
tooltip=tooltip
)
For more customization options, see the documentation of folium.GeoJson
.
Customizing the map¶
Keyword arguments passed to the constructors of MapNL
and ChoroplethMapNL
are passed on to folium.Map
. So for example,
in order to change the starting zoom level of the map, one could do:
m = ChoroplethMapNL(geojson_simplify_tolerance=0.0001, zoom_start=7)
For more customization options, see the documentation of folium.Map
.