In questo tutorial imparerai a installare Bokeh (e le sue dipendenze) e i componenti di base per creare visualizzazioni con Bokeh. Imparerai anche a creare grafici semplici e a personalizzarli. Questo getterà le basi per apprendere funzionalità più avanzate nelle sezioni successive.
Che cos'è Bokeh?
Bokeh è un pacchetto interattivo per la visualizzazione dei dati che consente di creare visualizzazioni dinamiche con Python. Bokeh è open source e puoi usarlo per creare grafici che raccontano una storia interessante.
Cosa distingue Bokeh dagli altri strumenti?
Nel mondo delle visualizzazioni, esistono molte librerie Python per creare dashboard e grafici, tra cui:
- Bokeh
- Matplotlib
- Streamlit
- dash
- Seaborn
- Plotly
- Geoplotlib
- Gleam
- ggplot
- Missingo
Bokeh è adatto a:
- Costruire visualizzazioni interattive per browser moderni
- Creare documenti autonomi o applicazioni supportate da server
- Creare grafica espressiva e dinamica
- Creare dashboard per dati grandi, dinamici o in streaming
Questo tutorial su Bokeh fa per te...
Se sei un data scientist, un data analyst o un machine learning engineer. Questo tutorial richiede che tu abbia conoscenze di base di Python e sappia come installare e importare pacchetti. Imparerai a creare visualizzazioni interattive e a distribuirle sul web usando la libreria Bokeh. Bokeh può aiutarti a creare grafici interattivi, dashboard e applicazioni dati.
Come installare Bokeh
Installazione con Anaconda
Se Anaconda è il tuo gestore di pacchetti Python, puoi installare Bokeh da Anaconda Prompt, dal Prompt dei comandi di Windows o dal terminale Bash, come segue:
conda install bokeh
conda install jinja2
conda install six
conda install requests
conda install tornado
conda install pyYaml
Installazione con pip
Puoi anche installarlo usando il gestore di pacchetti pip, come segue:
pip install bokeh
pip install jinja2
pip install six
pip install requests
pip install tornado
pip install pyYaml
Installazione in Jupyter Notebook
!pip install bokeh
!pip install Jinja2
!pip install Six
!pip install Requests
!pip install Tornado
!pip install PyYaml
Verifica dell'installazione
from bokeh.io import output_notebook, show
output_notebook()

Risoluzione dei problemi
Se riscontri problemi nell'installazione di Bokeh, puoi consultare Discourse per ricevere aiuto. Puoi anche dare un'occhiata a Github per risolvere problemi relativi a Bokeh.
Benvenuto nei glyph
Cosa sono i glyph, in sostanza?
I glyph sono gli elementi costitutivi fondamentali di Bokeh che creano i grafici. Ogni grafico che costruisci in Bokeh utilizza un meccanismo di glyph. Ad esempio, quando vuoi creare uno scatter plot, puoi usare un cerchio come marcatore per rappresentare le informazioni. Una linea rappresenterà le informazioni in un line plot.
Queste forme geometriche (linee o cerchi) sono ciò che in Bokeh chiamiamo glyph. Veicolano informazioni visive sui dati. Questo tutorial ti aiuterà a capire i glyph mostrandoti come usarli per creare vari tipi di grafici. In sintesi, andremo a tracciare i seguenti tipi di grafici usando i glyph:
- Line plot: i line plot mostrano lo spostamento dei punti dati lungo gli assi x e y come una linea. Sono adatti per tracciare serie storiche.
- Bar plot: i bar plot rappresentano il conteggio di ciascuna categoria come colonna o barra. Sono adatti per categorizzare i dati.
- Patch plot: i patch plot mostrano una regione di punti con un determinato colore. Sono adatti per distinguere gruppi all'interno dello stesso dataset.
- Scatter plot: gli scatter plot rappresentano la relazione tra due variabili e l'intensità della correlazione tra di esse.
Come usare i glyph per tracciare
I passaggi generali per creare un grafico in Bokeh sono:
- Crea un grafico usando la funzione figure() per istruire Bokeh a creare un diagramma.
- Definisci titolo e etichette degli assi x e y.
- Quindi aggiungi il glyph line() alla figura per creare un line plot e
- il glyph cross() per segnare le intersezioni tra i punti x e y.
Creare line plot
Il codice ti mostra come creare un semplice line plot in Bokeh.
#Import the required packages
from bokeh.io import output_notebook, output_file, show
from bokeh.plotting import figure
#Create two data arrays
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
# Create plot
plot = figure(width=400, height=400, title="Simple line plot", x_axis_label="x-axis", y_axis_label = 'y-axis')
plot.line(x,y, line_width=2, color='green')
#Show plot
output_file(“line_plot1.html”)
show(plot)
Questo esempio mostra come creare un singolo glyph linea usando una sequenza monodimensionale di punti dati x e y con il glyph line(). Nella funzione figure() puoi specificare larghezza e altezza del grafico, titolo ed etichette degli assi. Nel glyph line() puoi specificare lo spessore della linea con l'argomento line_width e il colore con l'argomento color.

Creare bar plot
#Import the
from bokeh.plotting import figure, show
animals = ['lion', 'leopard', 'elephant', 'rhino', 'buffalo']
weight_tonnes = [190, 90, 3000, 2300, 590]
p = figure(x_range=animals, height=350, title="Big Five weight", x_axis_label = "Animal", y_axis_label = "Weight",
toolbar_location=None, tools="")
p.vbar(x=animals, top=weight_tonnes, width=0.9)
p.xgrid.grid_line_color = None
p.y_range.start = 0
show(p)

Creare patch plot
Un patch plot colora delle regioni per mostrare che un gruppo o una zona ha caratteristiche simili. Puoi creare un semplice patch plot come segue:
# Import required packages
from bokeh.io import output_file, show
from bokeh.plotting import figure
# Create the regions to chart
x_region = [[1,1,2], [2,3,3], [2,3,5,4]]
y_region = [[2,5,6], [3,6,7], [2,4,7,8]]
# Create plot
plot = figure()
plot.patches(x_region, y_region, fill_color = ['blue', 'yellow', 'green'], line_color = 'black')
show(plot)

Ci sono tre regioni distinte: la prima è [1,1,2] mappata su [2,5,6] sull'asse y. La seconda è la regione di [2,2,3] sull'asse x mappata su [3,6,7] sull'asse y, e la terza regione è [2,3,5,4] sull'asse x mappata su [2,4,7,8] sull'asse y. Il glyph patches usa colori diversi per costruire le aree di ciascuna regione. L'argomento _linecolor specifica il colore del bordo di ogni area.
Creare scatter plot
I data scientist usano spesso gli scatter plot per determinare la relazione tra due variabili. Puoi creare un semplice scatter plot in Bokeh come segue:
# Import required packages
from bokeh.io import output_file, show
from bokeh.plotting import figure
# Create x and y data points
x = [1,2,3,4,5]
y = [5,7,2,2,4]
# Create plot
plot = figure(title = "Scatter plot", x_axis_label = "Label name of x axis", y_axis_label ="Label name of y axis")
plot.circle(x,y, size = 30, alpha = 0.5)
# Add labels
# Output the plot
show(plot)

Il codice usa marcatori a cerchio per creare i punti di intersezione delle liste x e y nello scatter plot. Al posto dei cerchi puoi usare altri marcatori come:
- cross()
- x()
- diamond()
- diamond_cross()
- circle_x()
- circle_cross()
- triangle()
- inverted_triangle()
- square_x()
- square_cross()
- asterisk()
L'argomento size = 30 specifica la dimensione di ciascun cerchio. La figura riassume tutti i marcatori disponibili in Bokeh.

L'argomento alpha specifica la trasparenza dei cerchi. Assume un valore tra 0 e 1, dove 0 è completamente trasparente e 1 è opaco.
Conclusione
Questo tutorial presenta Bokeh come strumento di visualizzazione interattivo e di alto livello. Il tutorial getta le basi su cosa aspettarti quando usi Bokeh. Hai visto come creare line plot, bar plot, patch plot e scatter plot in Bokeh usando il concetto di glyph. Dai un'occhiata alla seguente documentazione di Bokeh per maggiori dettagli sui vari grafici che puoi creare in Bokeh.

