A Jupyter notebook that demonstrates a few ways to visualise counts per Australian postcode (e.g., study participants per postcode):
- Option A (centroids): point markers and proportional circles on a Folium (Leaflet) map
- Option B (polygons): choropleth using ABS Postal Areas (POA 2021) boundaries (GeoPandas + Matplotlib, and an interactive Folium version)
The notebook is written so you can swap the public example counts for your own cohort’s participant counts.
.
├── PlotParticipantCatchment.ipynb
├── example_data.csv
├── australian_postcodes.csv
└── README.md
The notebook expects three inputs:
example_data.csv
A small CSV with one row per postcode (recommended) with at least:
postcodetotal_licences(or your cohort count column)
If you have participant-level rows, aggregate first (e.g., count participants per postcode) before merging with polygons.
-
australian_postcodes.csv
A postcode lookup with centroid lat/long (used for centroid maps). The notebook uses the dataset from thematthewproctor/australianpostcodesrepo. -
ABS POA 2021 boundary files (for polygon maps)
Download ASGS Edition 3 – POA 2021 boundary files (Shapefile) from the ABS, unzip, and place the folder as:
POA_2021_AUST_GDA94_SHP/POA_2021_AUST_GDA94.shp (plus its companion files)
- Replace
example_data.csvwith your dataset (or keep the example and change the filename). - Set
COUNT_COLto your count column (e.g.,n_participants). - Ensure
postcodeis present and formatted as 4-digit strings (the notebook includes a cleaning function).
- Interactive maps are shown inline in Jupyter.
- You can optionally export a standalone HTML file (see the “save as HTML” cell) and put it into
outputs/.
If you use the NSW open data example and/or ABS boundaries, keep their attribution statements in your derived outputs and repo notes.


