Bilancio
Micro-app della suite Piggybank
Entrate: **€ :sum[be]{path="entrate" field="importo"}** · Uscite: **€ :sum[bu]{path="spese" field="importo"}**
spazio dati «casa» — questa micro app legge e scrive lo spazio dati condiviso dalla suite.
Le altre micro app della stessa suite
Come funziona
Questa è un'app Reactive: un semplice documento di testo che il browser trasforma in un'app funzionante — moduli, dati dal vivo, tabelle, statistiche e persino grafici, senza installare né configurare nulla.
- Usala subito. Premi «Usa questa app»: si apre subito nel tuo browser, già pronta, con i dati salvati solo sul tuo dispositivo.
- I tuoi dati restano tuoi. Tutto è memorizzato in locale sul dispositivo, separato per ogni app: niente account, niente server, niente da configurare.
- Rendila tua. Il testo qui sotto è l'app per intero: copialo, cambia campi, viste e parole, e le modifiche diventano subito interattive.
- Condividila come file. Un'app è un semplice file: salvalo, esportalo o condividilo con un link; e con la collaborazione cifrata più persone modificano gli stessi dati in tempo reale.
Il testo dell'app
# 📊 Bilancio
## Come stiamo andando
Entrate: **€ :sum[be]{path="entrate" field="importo"}** ·
Uscite: **€ :sum[bu]{path="spese" field="importo"}**
:::python{data="spese,entrate" packages="matplotlib"}
```
import matplotlib.pyplot as plt
spese = data.get("spese", [])
entrate = data.get("entrate", [])
tot_u = sum(float(r.get("importo", 0) or 0) for r in spese)
tot_e = sum(float(r.get("importo", 0) or 0) for r in entrate)
print(f"Saldo: € {tot_e - tot_u:.2f}")
if spese:
percat = {}
for r in spese:
c = r.get("categoria") or "Altro"
percat[c] = percat.get(c, 0) + float(r.get("importo", 0) or 0)
fig, ax = plt.subplots(figsize=(6, 3.2))
ax.bar(list(percat.keys()), list(percat.values()))
ax.set_ylabel("€")
ax.set_title("Uscite per categoria")
plt.xticks(rotation=20)
plt.tight_layout()
else:
print("Aggiungi qualche spesa per vedere il grafico per categoria.")
```
:::