Vi sarà capitato di dover visualizzare dati in maniera più graziosa e organica che usando i comandi di pandas (come df.plot e, per seaborn, l’ottimo sns.pairplot) magari semplicemente perché avete bisogno di una interfaccia web (anche se si tratta di un server locale) a cui far accedere un utente terzo non specialista e non volete ricorrere a fastapi.
Pensate allora a Dash e a Streamlit.
Sia Dash che Streamlit sono pensate per facilitare la creazione di applicazioni web dedicate alla data science, ma si distinguono per alcune caratteristiche:
Astrazione:
- Dash: Fornisce un livello di astrazione più elevato, permettendoti di creare layout complessi e interattivi utilizzando un linguaggio che ricorda HTML, CSS e JavaScript. Questo ti offre più controllo sull’interfaccia utente, ma richiede un po’ più di tempo per imparare.
- Streamlit: Ha un’API più semplice e diretta, focalizzata sulla visualizzazione veloce dei dati. È perfetta per realizzare prototipi o dashboard base in tempi rapidi.
Componenti:
- Dash: Include una vasta gamma di componenti già pronti, come grafici, mappe e tabelle, anche se per esigenze particolari potrebbe essere necessario sviluppare componenti personalizzati.
- Streamlit: Ha meno componenti rispetto a Dash, ma l’offerta sta crescendo. La sua semplicità lo rende adatto a molti scenari comuni.
Layout:
- Dash: Adotta un approccio tradizionale con griglie e contenitori per gestire il layout, permettendo un maggiore controllo sugli elementi, ma richiedendo più codice.
- Streamlit: Utilizza un metodo più semplice e dichiarativo, dove gli elementi sono aggiunti in sequenza, rendendo il processo rapido e intuitivo.
Comunità e Ecosistema:
- Dash: Ha una comunità più vasta e consolidata, con molte risorse e tutorial disponibili.
- Streamlit: La sua comunità è più giovane ma in forte crescita.
Quando usare l’uno o l’altro?
- Dash: È la scelta migliore se hai bisogno di dashboard molto personalizzati e interattivi, con un controllo accurato sull’interfaccia utente. Ideale per progetti complessi e team con conoscenze di tecnologie web.
- Streamlit: Perfetto se vuoi creare prototipi o dashboard semplici in modo rapido, soprattutto per data scientist che vogliono condividere i risultati senza approfondire lo sviluppo web.
Riassumendo: Entrambi gli strumenti sono utili per la visualizzazione di dati, ma la scelta tra Dash e Streamlit dipende dalle tue esigenze e competenze. Se cerchi flessibilità e controllo, Dash è più adatto; se invece punti alla semplicità e velocità, Streamlit fa per te.
Considerazioni aggiuntive:
- Integrazione con altre librerie: Entrambi possono essere integrati con librerie come Pandas, NumPy e scikit-learn.
- Deployment: Dash e Streamlit possono essere distribuiti su piattaforme come Heroku, AWS e altre.
Esempi
E’ facilissimo trovare codice già scritto usando queste 2 librerie: un esempio di Amanda Kieswetter

o questo tutorial roduction to Dash Plotly – Data Visualization in Python by Charming Data.