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.

▶ Use this app

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.

  1. Use it right away. Hit “Use this app”: it opens right in your browser, ready to go, with data saved only on your device.
  2. Your data stays yours. Everything is stored locally on your device, kept separate for each app: no account, no server, nothing to set up.
  3. Make it your own. The text below is the entire app: copy it, tweak fields, views and words, and your changes become interactive instantly.
  4. 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.