Chi ha esperienza con R avrà probabilmente sentito parlare del pacchetto Shiny, che consente di creare applicazioni web interattive. R Shiny è stato rilasciato nel 2012 e la domanda è cresciuta rapidamente quando si è capito che questo pacchetto, facile da usare, poteva permettere a scienziati e analisti di creare modelli e dashboard più interattivi.
Nel 2023, Shiny per Python è uscito dalla fase alpha, offrendo un framework reattivo simile per il linguaggio Python. Shiny è rinomato per la sua semplicità ed efficacia nella creazione di dashboard e applicazioni web senza la necessità di competenze avanzate di sviluppo web.
Che cos'è Shiny?
Shiny è un framework open source per applicazioni web per R e, con gli sviluppi recenti, per Python. Permette ai professionisti dei dati di trasformare le proprie analisi in applicazioni web interattive. Il cuore di Shiny ruota attorno al concetto di programmazione reattiva, in cui le modifiche agli input (come slider o pulsanti) attivano aggiornamenti automatici negli output (come grafici o tabelle).
Ci sono molti vantaggi nell'usare il framework Shiny per creare applicazioni web. Shiny sfrutta la programmazione reattiva, consentendoti di costruire applicazioni che rispondono in modo dinamico agli input dell'utente, creando un'esperienza più coinvolgente e personalizzata. Shiny ha una libreria user-friendly e una documentazione completa, permettendo anche a chi ha conoscenze di programmazione di base di creare applicazioni interattive e gradevoli alla vista. Per gli appassionati di Python, Shiny offre ora un ponte tra il ricco ecosistema di data science di Python e le capacità di sviluppo web di Shiny.
Ecco alcuni esempi in cui il framework Shiny può essere prezioso:
Dashboard interattivi: Shiny è perfetto per creare dashboard interattivi che consentono agli utenti di esplorare e visualizzare i dati in tempo reale. Puoi usare questi consigli per progettare un dashboard eccellente.
Esplorazione dei dati: Gli analisti possono usare Shiny per creare applicazioni che permettono agli utenti di esplorare i dataset in modo interattivo, regolando al volo parametri e visualizzazioni.
Sistemi di supporto alle decisioni: Shiny può essere utilizzato per sviluppare sistemi di supporto alle decisioni, facilitando scelte guidate dai dati grazie a insight dinamici.
Strumenti didattici: Shiny è utile in ambito educativo, consentendo la creazione di materiali didattici e dimostrazioni interattive.
Nota: È importante capire che Shiny per R e Shiny per Python sono diversi. Pur condividendo concetti di base simili, la sintassi e la terminologia non sono intercambiabili. Se sai già usare Shiny per R, avrai un vantaggio nell'imparare Shiny per Python, ma dovrai comunque apprendere le differenze introdotte per adattarlo a Python.
Confronto di Shiny con altri framework per applicazioni web
Quando si considera lo sviluppo di applicazioni web per la data science, è utile capire come Shiny si confronti con altri framework.
Shiny offre una combinazione unica di semplicità e versatilità. Tuttavia, la versione per Python è relativamente nuova rispetto ad altri framework. Shiny è progettato per rendere lo sviluppo di applicazioni web accessibile a chiunque abbia conoscenze di codice Python.
Oltre alla facilità d'uso, è progettato per consentire uno scaling senza intoppi, utilizzando caching e reattività selettiva per mantenere efficiente il suo framework reattivo. Questo gli conferisce un vantaggio rispetto ad alcuni altri framework di web design. La sua sintassi dichiarativa e il modello di programmazione reattiva lo rendono accessibile anche ai data analyst, permettendo loro di creare applicazioni interattive senza una profonda esperienza di sviluppo web.
Al contrario, altri framework come Dash e Streamlit offrono punti di forza differenti. Dash usa una sintassi in stile Python e mette l'accento sullo sviluppo rapido. Streamlit eccelle nel prototipaggio veloce con rendering automatico, ma riesegue l'intero programma quando gli input cambiano, con conseguente inefficienza man mano che le applicazioni crescono. Flask e Django sono framework web generici che offrono flessibilità e controllo, ma spesso richiedono maggiori competenze di sviluppo web. Se ti interessa impararli, puoi leggere il tutorial su Django di DataCamp.
Oltre alle piattaforme di sviluppo web basate su codice, gli analisti dei dati usano anche Tableau e Power BI per scopi simili di creazione di dashboard. Si tratta di piattaforme di visualizzazione dei dati che offrono strumenti potenti ma hanno costi di licenza. Questi programmi hanno anche funzionalità di analisi limitate rispetto al codice puro e richiedono che i modelli e le analisi più complessi vengano completati altrove. Puoi saperne di più su Power BI su DataCamp.
È essenziale considerare i requisiti del progetto, le preferenze di linguaggio e la necessità di funzionalità specializzate quando si sceglie il framework più adatto per una data applicazione di data science. Pur riconoscendo i punti di forza altrui, l'unione unica di semplicità e flessibilità di Shiny, insieme alla sua integrazione con Python, lo rende una scelta interessante per chiunque voglia portare i propri progetti di data science a un livello superiore.
Framework
Caratteristiche principali
Supporto linguaggi
Curve di apprendimento
Caso d'uso
Shiny
Semplicità e versatilità
R, Python
Bassa
Applicazioni e visualizzazioni interattive
Dash
Sintassi "pythonic"
Python
Media
Sviluppo rapido di web app leggere
Streamlit
Prototipazione rapida con rendering automatico
Python
Bassa
Prototipazione veloce per app di dati
Flask
Framework web generico
Python
Da media ad alta
Web app complete
Django
Framework web Python di alto livello
Python
Da media ad alta
Applicazioni e servizi web scalabili
Tableau/Power BI
Piattaforme di visualizzazione dei dati
Non applicabile
Bassa
Visualizzazioni di Business Intelligence
Configurazione dell'ambiente di sviluppo
Una delle grandi qualità di Shiny per Python è la presenza di un editor web in cui puoi creare la tua app senza scaricare o installare nulla. Questo editor web viene fornito con diversi esempi di app e funzionalità che puoi usare per iniziare e provare la tua nuova applicazione Shiny.
Tuttavia, arriverà il momento in cui probabilmente vorrai eseguire Shiny sul tuo dispositivo locale. Questa sezione ti guiderà nell'installazione di Python, Shiny e delle rispettive dipendenze, oltre alle configurazioni necessarie per far funzionare senza problemi il tuo ambiente locale.
Installazione di Python
Per iniziare a lavorare con Shiny offline, devi avere Python installato sul tuo computer. Se non lo hai ancora installato, visita il sito ufficiale di Python su python.org e scarica l'ultima versione di Python per il tuo sistema operativo. Se avevi già installato Python, ti consiglio di aggiornarlo all'ultima versione per assicurarti che Shiny funzioni correttamente.
Esegui il programma di installazione scaricato e seleziona la casella "Add Python to PATH" durante l'installazione. Questo rende più semplice eseguire Python dalla riga di comando. Apri un prompt dei comandi o un terminale e digita python --version per verificare che Python sia stato installato correttamente. Dovresti vedere visualizzato il numero di versione. Per comodità, puoi anche scegliere di installare un IDE (Integrated Development Environment).
Installazione di Shiny
Una volta configurato Python, puoi installare Shiny. Finché hai l'ultima versione di Python, dovresti riuscire ad aprire un prompt dei comandi o un terminale e usare il seguente comando per installare la libreria Shiny per Python utilizzando pip:
Shiny può avere dipendenze aggiuntive in base alla configurazione del tuo sistema. Assicurati di installarle seguendo le istruzioni fornite nella documentazione di Shiny.
Configurazione dell'ambiente di sviluppo
Ora che hai installato Python e Shiny, ci sono altri tre aspetti da considerare.
IDE: Se usi un IDE, come VS Code, puoi scegliere di installare un'estensione per consentire il rendering degli output di Shiny all'interno dell'IDE.
Controllo versione: Valuta l'uso di sistemi di controllo versione come Git per tracciare le modifiche al tuo codice. Inizializza un repository Git nella cartella del progetto per gestire e collaborare facilmente sulle tue applicazioni Shiny.
Struttura del codice: Organizza la struttura del progetto. Crea cartelle separate per le tue applicazioni Shiny, i dataset e qualsiasi risorsa aggiuntiva. Questo aiuta a mantenere un codebase pulito e ordinato, che è la best practice per qualsiasi progetto di coding.
Con il tuo ambiente di sviluppo ora configurato, sei pronto per iniziare a creare applicazioni web interattive con Shiny per Python.
Creare una Shiny app di base
Capire la struttura di una Shiny app
Una Shiny app è composta da due componenti principali: l'interfaccia utente (UI) e la logica del server.
L'UI definisce l'aspetto dell'app e quali elementi sono disponibili per l'interazione dell'utente. Tutto ciò che l'utente può vedere o con cui può interagire fa parte dell'UI, inclusi elementi come slider, pulsanti e grafici.
L'UI è creata utilizzando funzioni che iniziano con "ui.", come ui.input_numeric, ui.input_slider e ui.output_text. Queste funzioni sono racchiuse in una funzione di pagina, in genere ui.page_fluid, che descrive il layout di base della pagina.
La logica del server definisce come l'app si comporta e risponde agli input dell'utente. Consiste di funzioni che prendono gli input dell'utente dall'UI, li elaborano e aggiornano di conseguenza gli elementi di output. La logica del server è creata usando la funzione server e include espressioni reattive per gestire input e output.
Dopo aver definito l'UI e la logica del server, li colleghiamo in un'applicazione completa, che deve chiamarsi "app".
Questo esempio prende l'input dell'utente da uno slider e lo usa per eseguire un calcolo che viene mostrato nella casella di testo sotto lo slider. Questo esempio molto semplice viene eseguito in un browser semplice su un host locale in VS Code.
Come puoi vedere da questa semplice dimostrazione, la magia di Shiny è la sua interattività. Il motore dietro l'interattività di Shiny risiede nel suo modello di programmazione reattiva. In Shiny, definiamo espressioni reattive per creare una catena di dipendenze tra input e output. Quando un input cambia, tutte le espressioni reattive e gli output dipendenti vengono aggiornati automaticamente. Questa reattività è il cuore di Shiny. Puoi leggere qui maggiori dettagli sulla reattività di Shiny.
Ci sono alcuni elementi chiave che rendono possibile questa reattività.
Il primo è il calcolo reattivo, ovvero reactive.Calc. Si tratta di un calcolo basato su un input. Questo calcolo memorizza nella cache il valore restituito finché l'input non cambia, momento in cui viene rieseguito con il nuovo input. Ciò consente alla tua app di rispondere in modo efficiente agli input dell'utente. I calcoli reattivi utilizzano il decoratore @reactive.Calc, come nell'esempio seguente.
@reactive.Calcdefdouble_number():returninput.number()*2Offerto da
Un altro elemento reattivo è un effetto reattivo, ovvero reactive.Effect. Un effetto reattivo non restituisce un valore quando viene eseguito. Invece, innesca un effetto, come modificare una variabile o salvare un file. Inoltre, viene rieseguito quando gli input cambiano. Il reactive.Effect più comune è il decoratore @output, che aggiunge una stringa con il risultato nella coda dei messaggi, come nell'esempio seguente.
@output@render.textdeftxt():returnf"The value of x is {input.x()}"Offerto da
A volte potresti non voler che la reattività della tua app sia così istantanea. Per esempio, se hai un modello computazionalmente costoso, potresti voler aspettare che più parametri siano stati aggiornati prima di rieseguirlo. In questo caso, reactive.event() o con reactive.isolate() offrono opzioni per limitare la reattività della tua app.
Aggiungere interattività alla tua Shiny app
Quando ti serve un'app più complessa
Con questa logica reattiva, Shiny per Python può creare app tanto complesse quanto semplici ti servano. Puoi aggiungere pulsanti radio, caselle di controllo, slider, campi di testo, grafici, mappe e molto altro! Ecco un esempio leggermente più complesso tratto dalla documentazione di Shiny.
In questo esempio, abbiamo creato una heatmap di alcuni dati casuali. C'è un'opzione con pulsanti radio per lo stile della heatmap che l'utente vuole visualizzare e la funzione slider cambia l'intervallo di colori nella heatmap. Posit (l'azienda che ha creato Shiny) fornisce diversi altri esempi sul proprio sito, incluso questo divertente clone di Wordle.
Sebbene questo tipo di interattività sia divertente da esplorare, esistono anche molte applicazioni utili. Potresti progettare un modello che prenda fattori ambientali come salinità e temperatura e li usi per prevedere fioriture algali. Un ricercatore sul campo potrebbe inserire i valori attuali nella tua Shiny app e ottenere una previsione in tempo reale.
Potresti progettare un modello che mostri proiezioni di guadagni annuali al verificarsi di determinate condizioni. I manager potrebbero quindi usare la tua app per simulare diversi scenari inserendo numeri di vendite differenti o selezionando le caselle relative ai prodotti offerti, e vedrebbero l'aggiornamento della previsione in tempo reale.
I casi d'uso sono numerosi in più settori.
Tipi di input e output
Shiny offre una varietà di opzioni di input e output per soddisfare diverse esigenze di visualizzazione e interazione con i dati. Ecco una semplice tabella degli input e output comuni disponibili in Shiny per Python.
Input
Cosa fa?
Action Button Input
Fornisce un pulsante da selezionare.
Action Link Input
Permette all'utente di fare clic su un link.
Text input
Fornisce una casella di testo per una semplice riga di testo.
Numeric input
Fornisce una casella di input numerico con frecce su e giù.
Slider input
Crea uno slider numerico.
Checkbox input
Genera una singola casella di controllo per applicazioni True/False.
Switch input
Genera un singolo interruttore on/off.
Checkbox group input
Crea più caselle di controllo per scelte multiple.
Select input
Fornisce un menu a discesa di scelte.
Radio buttons input
Crea scelte con pulsanti radio, imponendo una singola scelta.
Text area input
Fornisce una casella di testo più grande con finestra ridimensionabile per input di testo lunghi.
Date input
Crea una casella di input data con un calendario per scegliere una data.
Date range input
In pratica due caselle data accoppiate che consentono di inserire un intervallo.
Password input
Crea una casella di testo che nasconde il testo inserito.
———————————————————————————————————————
Output
Cosa fa?
Text output
Scrive testo in HTML semplice.
Verbatim text output
Scrive testo all'interno di un blocco di codice a spaziatura fissa.
UI output
Permette un'UI più dinamica basata sugli input dell'utente.
Plot output
Genera un grafico usando librerie Python comuni, come matplotlib.
Table output
Crea una tabella semplice con intestazioni di colonna.
Data Frame / Grid output
Crea una tabella personalizzabile con filtri, linee di griglia e limiti di righe.
Personalizzare l'interfaccia utente in Shiny per Python
Layout e temi
Shiny offre flessibilità nella personalizzazione dell'interfaccia utente attraverso vari layout utilizzando una funzione di pagina. La funzione di pagina più usata è page_fluid(), che fornisce un design responsive che si adatta a diverse dimensioni dello schermo. Un layout a larghezza fissa, adatto ad applicazioni con requisiti di design specifici, può essere ottenuto usando la funzione di pagina page_fixed().
Shiny sfrutta l'HTML per creare le sue app web. Questo significa che puoi usare i temi CSS per dare stile alla tua app. L'aggiunta di CSS personalizzato ti consente di adattare l'aspetto della tua Shiny app alle tue preferenze estetiche o al branding aziendale.Top of Form
Implementazione di widget ed estensioni personalizzati
Shiny supporta gli ipywidgets per una varietà di grafici interattivi, mappe, visualizzazioni 3D e streaming multimediale. Ha anche una certa funzionalità per altri widget Python che possono essere salvati come file HTML. Integrando widget personalizzati, puoi adattare la tua Shiny app a casi d'uso specifici e creare un'esperienza più su misura per l'utente.
Distribuire la tua Shiny app per Python
Spiegazione delle diverse opzioni di distribuzione
Una volta creata una Shiny app convincente, probabilmente vorrai condividerla con un pubblico più ampio, per il tuo portfolio o per un cliente, distribuendola sul web. Shiny supporta diverse opzioni di distribuzione per soddisfare esigenze differenti.
Distribuzione locale: Puoi distribuire la tua Shiny app su un server locale, rendendola accessibile all'interno della tua organizzazione o a un gruppo specifico di utenti.
Piattaforme cloud-based: Le piattaforme cloud offrono soluzioni scalabili e accessibili per distribuire app Shiny. Scelte popolari includono:
Shinyapps.io: la piattaforma di Posit progettata specificamente per l'hosting di applicazioni Shiny.
Heroku: una piattaforma cloud che supporta la distribuzione di app Shiny.
AWS, Azure e Google Cloud: i principali provider cloud che consentono di distribuire app Shiny su macchine virtuali o container.
ShinyLive: Shiny offre un nuovo modo per eseguire applicazioni Shiny all'interno di un browser web senza un server separato che esegue Python. Combina WebAssembly e Pyodide per consentire l'esecuzione delle applicazioni Shiny senza installare Python o Shiny sul tuo computer. Questa piattaforma limita i pacchetti Python disponibili e potrebbe non essere sicura quanto altre soluzioni, ma è un buon modo per condividere rapidamente codice non sensibile.
Conclusione
Shiny per Python è un nuovo protagonista entusiasmante nel panorama dello sviluppo di web app. Il suo utilizzo può migliorare notevolmente il tuo progetto dati senza un investimento di tempo significativo nell'apprendimento dello sviluppo web. Se ti interessa provare Shiny per R, dai un'occhiata a questo corso sui fondamenti di Shiny di DataCamp e a questo corso sulla creazione di dashboard con R Shiny. Una volta apprese le basi, metti in pratica le tue nuove competenze con una case study su Shiny!
Sono un PhD con 13 anni di esperienza nel lavoro con i dati in un contesto di ricerca biologica. Creo software in diversi linguaggi di programmazione, tra cui Python, MATLAB e R. Sono appassionato di condividere con il mondo il mio amore per l’apprendimento.
Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Impara a usare Shiny, un popolare pacchetto R, per costruire applicazioni web altamente interattive e condividere le tue analisi sotto forma di dashboard e visualizzazioni.
Introduzione a Shiny e ai suoi vantaggi
Chi ha esperienza con R avrà probabilmente sentito parlare del pacchetto Shiny, che consente di creare applicazioni web interattive. R Shiny è stato rilasciato nel 2012 e la domanda è cresciuta rapidamente quando si è capito che questo pacchetto, facile da usare, poteva permettere a scienziati e analisti di creare modelli e dashboard più interattivi.
Nel 2023, Shiny per Python è uscito dalla fase alpha, offrendo un framework reattivo simile per il linguaggio Python. Shiny è rinomato per la sua semplicità ed efficacia nella creazione di dashboard e applicazioni web senza la necessità di competenze avanzate di sviluppo web.
Che cos'è Shiny?
Shiny è un framework open source per applicazioni web per R e, con gli sviluppi recenti, per Python. Permette ai professionisti dei dati di trasformare le proprie analisi in applicazioni web interattive. Il cuore di Shiny ruota attorno al concetto di programmazione reattiva, in cui le modifiche agli input (come slider o pulsanti) attivano aggiornamenti automatici negli output (come grafici o tabelle).
Ci sono molti vantaggi nell'usare il framework Shiny per creare applicazioni web. Shiny sfrutta la programmazione reattiva, consentendoti di costruire applicazioni che rispondono in modo dinamico agli input dell'utente, creando un'esperienza più coinvolgente e personalizzata. Shiny ha una libreria user-friendly e una documentazione completa, permettendo anche a chi ha conoscenze di programmazione di base di creare applicazioni interattive e gradevoli alla vista. Per gli appassionati di Python, Shiny offre ora un ponte tra il ricco ecosistema di data science di Python e le capacità di sviluppo web di Shiny.
Ecco alcuni esempi in cui il framework Shiny può essere prezioso:
Nota: È importante capire che Shiny per R e Shiny per Python sono diversi. Pur condividendo concetti di base simili, la sintassi e la terminologia non sono intercambiabili. Se sai già usare Shiny per R, avrai un vantaggio nell'imparare Shiny per Python, ma dovrai comunque apprendere le differenze introdotte per adattarlo a Python.
Confronto di Shiny con altri framework per applicazioni web
Quando si considera lo sviluppo di applicazioni web per la data science, è utile capire come Shiny si confronti con altri framework.
Shiny offre una combinazione unica di semplicità e versatilità. Tuttavia, la versione per Python è relativamente nuova rispetto ad altri framework. Shiny è progettato per rendere lo sviluppo di applicazioni web accessibile a chiunque abbia conoscenze di codice Python.
Oltre alla facilità d'uso, è progettato per consentire uno scaling senza intoppi, utilizzando caching e reattività selettiva per mantenere efficiente il suo framework reattivo. Questo gli conferisce un vantaggio rispetto ad alcuni altri framework di web design. La sua sintassi dichiarativa e il modello di programmazione reattiva lo rendono accessibile anche ai data analyst, permettendo loro di creare applicazioni interattive senza una profonda esperienza di sviluppo web.
Al contrario, altri framework come Dash e Streamlit offrono punti di forza differenti. Dash usa una sintassi in stile Python e mette l'accento sullo sviluppo rapido. Streamlit eccelle nel prototipaggio veloce con rendering automatico, ma riesegue l'intero programma quando gli input cambiano, con conseguente inefficienza man mano che le applicazioni crescono. Flask e Django sono framework web generici che offrono flessibilità e controllo, ma spesso richiedono maggiori competenze di sviluppo web. Se ti interessa impararli, puoi leggere il tutorial su Django di DataCamp.
Oltre alle piattaforme di sviluppo web basate su codice, gli analisti dei dati usano anche Tableau e Power BI per scopi simili di creazione di dashboard. Si tratta di piattaforme di visualizzazione dei dati che offrono strumenti potenti ma hanno costi di licenza. Questi programmi hanno anche funzionalità di analisi limitate rispetto al codice puro e richiedono che i modelli e le analisi più complessi vengano completati altrove. Puoi saperne di più su Power BI su DataCamp.
È essenziale considerare i requisiti del progetto, le preferenze di linguaggio e la necessità di funzionalità specializzate quando si sceglie il framework più adatto per una data applicazione di data science. Pur riconoscendo i punti di forza altrui, l'unione unica di semplicità e flessibilità di Shiny, insieme alla sua integrazione con Python, lo rende una scelta interessante per chiunque voglia portare i propri progetti di data science a un livello superiore.
Framework
Caratteristiche principali
Supporto linguaggi
Curve di apprendimento
Caso d'uso
Shiny
Semplicità e versatilità
R, Python
Bassa
Applicazioni e visualizzazioni interattive
Dash
Sintassi "pythonic"
Python
Media
Sviluppo rapido di web app leggere
Streamlit
Prototipazione rapida con rendering automatico
Python
Bassa
Prototipazione veloce per app di dati
Flask
Framework web generico
Python
Da media ad alta
Web app complete
Django
Framework web Python di alto livello
Python
Da media ad alta
Applicazioni e servizi web scalabili
Tableau/Power BI
Piattaforme di visualizzazione dei dati
Non applicabile
Bassa
Visualizzazioni di Business Intelligence
Configurazione dell'ambiente di sviluppo
Una delle grandi qualità di Shiny per Python è la presenza di un editor web in cui puoi creare la tua app senza scaricare o installare nulla. Questo editor web viene fornito con diversi esempi di app e funzionalità che puoi usare per iniziare e provare la tua nuova applicazione Shiny.
Tuttavia, arriverà il momento in cui probabilmente vorrai eseguire Shiny sul tuo dispositivo locale. Questa sezione ti guiderà nell'installazione di Python, Shiny e delle rispettive dipendenze, oltre alle configurazioni necessarie per far funzionare senza problemi il tuo ambiente locale.
Installazione di Python
Per iniziare a lavorare con Shiny offline, devi avere Python installato sul tuo computer. Se non lo hai ancora installato, visita il sito ufficiale di Python su python.org e scarica l'ultima versione di Python per il tuo sistema operativo. Se avevi già installato Python, ti consiglio di aggiornarlo all'ultima versione per assicurarti che Shiny funzioni correttamente.
Esegui il programma di installazione scaricato e seleziona la casella "Add Python to PATH" durante l'installazione. Questo rende più semplice eseguire Python dalla riga di comando. Apri un prompt dei comandi o un terminale e digita python --version per verificare che Python sia stato installato correttamente. Dovresti vedere visualizzato il numero di versione. Per comodità, puoi anche scegliere di installare un IDE (Integrated Development Environment).
Installazione di Shiny
Una volta configurato Python, puoi installare Shiny. Finché hai l'ultima versione di Python, dovresti riuscire ad aprire un prompt dei comandi o un terminale e usare il seguente comando per installare la libreria Shiny per Python utilizzando pip:
Se usi conda invece di pip, usa questo comando:
Shiny può avere dipendenze aggiuntive in base alla configurazione del tuo sistema. Assicurati di installarle seguendo le istruzioni fornite nella documentazione di Shiny.
Configurazione dell'ambiente di sviluppo
Ora che hai installato Python e Shiny, ci sono altri tre aspetti da considerare.
Con il tuo ambiente di sviluppo ora configurato, sei pronto per iniziare a creare applicazioni web interattive con Shiny per Python.
Creare una Shiny app di base
Capire la struttura di una Shiny app
Una Shiny app è composta da due componenti principali: l'interfaccia utente (UI) e la logica del server.
L'UI definisce l'aspetto dell'app e quali elementi sono disponibili per l'interazione dell'utente. Tutto ciò che l'utente può vedere o con cui può interagire fa parte dell'UI, inclusi elementi come slider, pulsanti e grafici.
L'UI è creata utilizzando funzioni che iniziano con "ui.", come ui.input_numeric, ui.input_slider e ui.output_text. Queste funzioni sono racchiuse in una funzione di pagina, in genere ui.page_fluid, che descrive il layout di base della pagina.
La logica del server definisce come l'app si comporta e risponde agli input dell'utente. Consiste di funzioni che prendono gli input dell'utente dall'UI, li elaborano e aggiornano di conseguenza gli elementi di output. La logica del server è creata usando la funzione server e include espressioni reattive per gestire input e output.
Dopo aver definito l'UI e la logica del server, li colleghiamo in un'applicazione completa, che deve chiamarsi "app".
Comprendere il modello di programmazione reattiva
Considera questo esempio tratto dalla documentazione di Shiny.
Questo esempio prende l'input dell'utente da uno slider e lo usa per eseguire un calcolo che viene mostrato nella casella di testo sotto lo slider. Questo esempio molto semplice viene eseguito in un browser semplice su un host locale in VS Code.
Come puoi vedere da questa semplice dimostrazione, la magia di Shiny è la sua interattività. Il motore dietro l'interattività di Shiny risiede nel suo modello di programmazione reattiva. In Shiny, definiamo espressioni reattive per creare una catena di dipendenze tra input e output. Quando un input cambia, tutte le espressioni reattive e gli output dipendenti vengono aggiornati automaticamente. Questa reattività è il cuore di Shiny. Puoi leggere qui maggiori dettagli sulla reattività di Shiny.
Ci sono alcuni elementi chiave che rendono possibile questa reattività.
Il primo è il calcolo reattivo, ovvero
reactive.Calc. Si tratta di un calcolo basato su un input. Questo calcolo memorizza nella cache il valore restituito finché l'input non cambia, momento in cui viene rieseguito con il nuovo input. Ciò consente alla tua app di rispondere in modo efficiente agli input dell'utente. I calcoli reattivi utilizzano il decoratore @reactive.Calc, come nell'esempio seguente.Un altro elemento reattivo è un effetto reattivo, ovvero
reactive.Effect. Un effetto reattivo non restituisce un valore quando viene eseguito. Invece, innesca un effetto, come modificare una variabile o salvare un file. Inoltre, viene rieseguito quando gli input cambiano. Il reactive.Effect più comune è il decoratore @output, che aggiunge una stringa con il risultato nella coda dei messaggi, come nell'esempio seguente.A volte potresti non voler che la reattività della tua app sia così istantanea. Per esempio, se hai un modello computazionalmente costoso, potresti voler aspettare che più parametri siano stati aggiornati prima di rieseguirlo. In questo caso, reactive.event() o con reactive.isolate() offrono opzioni per limitare la reattività della tua app.
Aggiungere interattività alla tua Shiny app
Quando ti serve un'app più complessa
Con questa logica reattiva, Shiny per Python può creare app tanto complesse quanto semplici ti servano. Puoi aggiungere pulsanti radio, caselle di controllo, slider, campi di testo, grafici, mappe e molto altro! Ecco un esempio leggermente più complesso tratto dalla documentazione di Shiny.
In questo esempio, abbiamo creato una heatmap di alcuni dati casuali. C'è un'opzione con pulsanti radio per lo stile della heatmap che l'utente vuole visualizzare e la funzione slider cambia l'intervallo di colori nella heatmap. Posit (l'azienda che ha creato Shiny) fornisce diversi altri esempi sul proprio sito, incluso questo divertente clone di Wordle.
Sebbene questo tipo di interattività sia divertente da esplorare, esistono anche molte applicazioni utili. Potresti progettare un modello che prenda fattori ambientali come salinità e temperatura e li usi per prevedere fioriture algali. Un ricercatore sul campo potrebbe inserire i valori attuali nella tua Shiny app e ottenere una previsione in tempo reale.
Potresti progettare un modello che mostri proiezioni di guadagni annuali al verificarsi di determinate condizioni. I manager potrebbero quindi usare la tua app per simulare diversi scenari inserendo numeri di vendite differenti o selezionando le caselle relative ai prodotti offerti, e vedrebbero l'aggiornamento della previsione in tempo reale.
I casi d'uso sono numerosi in più settori.
Tipi di input e output
Shiny offre una varietà di opzioni di input e output per soddisfare diverse esigenze di visualizzazione e interazione con i dati. Ecco una semplice tabella degli input e output comuni disponibili in Shiny per Python.
Input
Cosa fa?
Action Button Input
Fornisce un pulsante da selezionare.
Action Link Input
Permette all'utente di fare clic su un link.
Text input
Fornisce una casella di testo per una semplice riga di testo.
Numeric input
Fornisce una casella di input numerico con frecce su e giù.
Slider input
Crea uno slider numerico.
Checkbox input
Genera una singola casella di controllo per applicazioni True/False.
Switch input
Genera un singolo interruttore on/off.
Checkbox group input
Crea più caselle di controllo per scelte multiple.
Select input
Fornisce un menu a discesa di scelte.
Radio buttons input
Crea scelte con pulsanti radio, imponendo una singola scelta.
Text area input
Fornisce una casella di testo più grande con finestra ridimensionabile per input di testo lunghi.
Date input
Crea una casella di input data con un calendario per scegliere una data.
Date range input
In pratica due caselle data accoppiate che consentono di inserire un intervallo.
Password input
Crea una casella di testo che nasconde il testo inserito.
———————————————————————————————————————
Output
Cosa fa?
Text output
Scrive testo in HTML semplice.
Verbatim text output
Scrive testo all'interno di un blocco di codice a spaziatura fissa.
UI output
Permette un'UI più dinamica basata sugli input dell'utente.
Plot output
Genera un grafico usando librerie Python comuni, come matplotlib.
Table output
Crea una tabella semplice con intestazioni di colonna.
Data Frame / Grid output
Crea una tabella personalizzabile con filtri, linee di griglia e limiti di righe.
Per l'elenco completo dei componenti di Shiny, dai un'occhiata a questa pagina.
Personalizzare l'interfaccia utente in Shiny per Python
Layout e temi
Shiny offre flessibilità nella personalizzazione dell'interfaccia utente attraverso vari layout utilizzando una funzione di pagina. La funzione di pagina più usata è page_fluid(), che fornisce un design responsive che si adatta a diverse dimensioni dello schermo. Un layout a larghezza fissa, adatto ad applicazioni con requisiti di design specifici, può essere ottenuto usando la funzione di pagina page_fixed().
Shiny sfrutta l'HTML per creare le sue app web. Questo significa che puoi usare i temi CSS per dare stile alla tua app. L'aggiunta di CSS personalizzato ti consente di adattare l'aspetto della tua Shiny app alle tue preferenze estetiche o al branding aziendale.Top of Form
Implementazione di widget ed estensioni personalizzati
Shiny supporta gli ipywidgets per una varietà di grafici interattivi, mappe, visualizzazioni 3D e streaming multimediale. Ha anche una certa funzionalità per altri widget Python che possono essere salvati come file HTML. Integrando widget personalizzati, puoi adattare la tua Shiny app a casi d'uso specifici e creare un'esperienza più su misura per l'utente.
Distribuire la tua Shiny app per Python
Spiegazione delle diverse opzioni di distribuzione
Una volta creata una Shiny app convincente, probabilmente vorrai condividerla con un pubblico più ampio, per il tuo portfolio o per un cliente, distribuendola sul web. Shiny supporta diverse opzioni di distribuzione per soddisfare esigenze differenti.
Distribuzione locale: Puoi distribuire la tua Shiny app su un server locale, rendendola accessibile all'interno della tua organizzazione o a un gruppo specifico di utenti.
Piattaforme cloud-based: Le piattaforme cloud offrono soluzioni scalabili e accessibili per distribuire app Shiny. Scelte popolari includono:
ShinyLive: Shiny offre un nuovo modo per eseguire applicazioni Shiny all'interno di un browser web senza un server separato che esegue Python. Combina WebAssembly e Pyodide per consentire l'esecuzione delle applicazioni Shiny senza installare Python o Shiny sul tuo computer. Questa piattaforma limita i pacchetti Python disponibili e potrebbe non essere sicura quanto altre soluzioni, ma è un buon modo per condividere rapidamente codice non sensibile.
Conclusione
Shiny per Python è un nuovo protagonista entusiasmante nel panorama dello sviluppo di web app. Il suo utilizzo può migliorare notevolmente il tuo progetto dati senza un investimento di tempo significativo nell'apprendimento dello sviluppo web. Se ti interessa provare Shiny per R, dai un'occhiata a questo corso sui fondamenti di Shiny di DataCamp e a questo corso sulla creazione di dashboard con R Shiny. Una volta apprese le basi, metti in pratica le tue nuove competenze con una case study su Shiny!