Import files, clean data and analyse.

Import file

Identify level of each row.

calculate turnout

Import 2019 results

Identify level of each row.

Select only Bezirk (already includes mail votes)

row-bind 2017 and 2019 resuls

Plot

Define plot function to be applied for each party.

Define annotations

Merge election and annotation data. Split data per party and apply plot function

Combine different plots to one joint plot

Save plot.

Interactive plot with cross-talk ——————————————————–

Not polished, only for crude analysis. Click on one point (district), to see its position in other graphs, for other parties..