Groups
Part of the Municipalities lab
Two-digit region code (e.g. `01` Piedmont, `03` Lombardy, `05` Veneto, `08` Emilia-Romagna, `09` Tuscany, `12` Lazio, `15` Campania, `19` Sicily). Then move the slider: the clustering recomputes and the map recolors.
data space «laboratorio-comuni» — this micro app reads and writes the suite’s shared data space.
What it records
- Region code (2 digits)
The other micro apps in the same suite
How it works
This is a Reactive app: a plain text document that your browser turns into a working app — forms, live data, tables, statistics and even charts, with nothing to install or configure.
- Use it right away. Hit “Use this app”: it opens right in your browser, ready to go, with data saved only on your device.
- Your data stays yours. Everything is stored locally on your device, kept separate for each app: no account, no server, nothing to set up.
- Make it your own. The text below is the entire app: copy it, tweak fields, views and words, and your changes become interactive instantly.
- Share it as a file. An app is a simple file: save it, export it or share it with a link; and with encrypted collaboration several people edit the same data in real time.
The app’s source
# 🗺️ Groups
## The region's groups of municipalities
Two-digit region code (e.g. `01` Piedmont, `03` Lombardy, `05` Veneto,
`08` Emilia-Romagna, `09` Tuscany, `12` Lazio, `15` Campania, `19` Sicily).
Then move the slider: the clustering recomputes and the map recolors.
::input[reg]{value="08" placeholder="Region code (2 digits)"}
::od-query{into="comuni" sql="SELECT c.comune AS comune, c.geojson AS geojson, r.reddito_medio AS reddito, i.eta_media AS eta, i.perc_stranieri AS stranieri FROM istat_confini_comuni c JOIN mef_redditi r ON r.codice_istat = c.codice_istat JOIN istat_indicatori i ON i.codice_istat = c.codice_istat WHERE c.cod_reg = '{#reg}'" limit="2000"}
::range[k]{min="2" max="8" value="4" legend="Number of groups"}
::ml-cluster{data="comuni" features="reddito,eta,stranieri" k="#k" into="gruppi"}
:::map{path="gruppi" geojson="geojson" fill="cluster" height="26rem"}
**{comune}** — group {cluster} · income {reddito} € · average age {eta}
:::
Similar municipalities end up in the same group: K-means works on average
income, average age and percentage of foreign residents (standardized). The
map colors are the groups.