Accéder au contenu principal

Tutoriel de visualisation de données avec Bokeh : bien démarrer

Apprenez les bases essentielles et le processus d’installation de Bokeh
· 7 min lire

Explorez l'IA

Dans ce tutoriel, vous allez apprendre à installer Bokeh (et ses dépendances) et à maîtriser les briques de base pour créer des visualisations avec Bokeh. Vous verrez aussi comment réaliser des graphiques simples et les personnaliser. Cela posera les fondations pour explorer des fonctionnalités plus avancées par la suite.

Qu’est-ce que Bokeh ?

Bokeh est une bibliothèque open source de visualisation interactive pour créer des graphiques dynamiques avec Python. Vous pouvez l’utiliser pour produire des visualisations qui racontent une histoire.

Qu’est-ce qui distingue Bokeh des autres outils ?

Dans l’écosystème des visualisations, de nombreuses bibliothèques Python permettent de créer des tableaux de bord et des graphiques, notamment :

  • Bokeh
  • Matplotlib
  • Streamlit
  • dash
  • Seaborn
  • Plotly
  • Geoplotlib
  • Gleam
  • ggplot
  • Missingo

Bokeh est particulièrement indiqué pour :

  • Construire des visualisations interactives pour les navigateurs modernes
  • Créer des documents autonomes ou des applications reliées à un serveur
  • Produire des graphiques expressifs et dynamiques
  • Mettre en place des tableaux de bord pour des données volumineuses, dynamiques ou en streaming

Ce tutoriel Bokeh est fait pour vous…

…si vous êtes data scientist, data analyst ou ingénieur en machine learning. Ce tutoriel suppose que vous connaissez les bases de Python et savez installer et importer des packages. Vous apprendrez à créer des visualisations interactives et à les déployer sur le web avec la bibliothèque Bokeh. Bokeh vous aide à créer des graphiques interactifs, des tableaux de bord et des applications data.

Comment installer Bokeh

Installer avec Anaconda

Si Anaconda est votre gestionnaire de packages Python, vous pouvez installer Bokeh depuis Anaconda Prompt, Windows Command Prompt ou un terminal Bash, comme suit :

conda install bokeh
conda install jinja2
conda install six
conda install requests
conda install tornado
conda install pyYaml

Installer avec pip

Vous pouvez aussi l’installer avec le gestionnaire de packages pip, comme suit :

pip install bokeh
pip install jinja2
pip install six
pip install requests
pip install tornado
pip install pyYaml

Installer depuis un notebook Jupyter

!pip install bokeh
!pip install Jinja2
!pip install Six
!pip install Requests
!pip install Tornado
!pip install PyYaml

Vérifier votre installation

from bokeh.io import output_notebook, show

output_notebook()

Dépannage

Si vous rencontrez des problèmes lors de l’installation de Bokeh, consultez Discourse pour obtenir de l’aide. Vous pouvez également jeter un œil aux issues sur Github relatives à Bokeh.

Bienvenue dans les glyphes

Au fait, qu’est-ce qu’un glyphe ?

Les glyphes sont les éléments clés de Bokeh pour construire des graphiques. Chaque visualisation créée avec Bokeh repose sur des glyphes. Par exemple, pour un nuage de points, vous pouvez utiliser un cercle comme marqueur pour représenter l’information. Une ligne, elle, représente l’information dans un graphique en lignes.

Ces formes géométriques (lignes, cercles, etc.) sont ce que Bokeh appelle des glyphes. Elles transmettent visuellement des informations sur les données. Ce tutoriel va vous aider à comprendre les glyphes en vous montrant comment les utiliser pour créer différents types de graphiques. En résumé, nous allons tracer les graphiques suivants à l’aide de glyphes :

  • Graphiques en lignes : ils présentent l’évolution des points de données le long des axes x et y sous forme de ligne. Ils sont adaptés aux séries temporelles.
  • Graphiques en barres : ils représentent le décompte de chaque catégorie sous forme de colonnes. Idéal pour catégoriser des données.
  • Graphiques en surfaces (patches) : ils colorent des zones de points pour mettre en évidence des groupes. Utile pour distinguer des sous-ensembles au sein d’un même jeu de données.
  • Nuages de points : ils représentent la relation entre deux variables et l’intensité de leur corrélation.

Comment utiliser les glyphes pour tracer

Les étapes générales pour créer un graphique avec Bokeh sont :

  • Créer une figure avec la fonction figure() pour demander à Bokeh de générer un diagramme.
  • Définir le titre ainsi que les étiquettes des axes x et y.
  • Ajouter ensuite le glyphe line() à la figure pour créer un graphique en lignes et
  • le glyphe cross() pour marquer les intersections entre les points x et y.

Créer des graphiques en lignes

Le code ci-dessous montre comment créer un simple graphique en lignes avec 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)

Cet exemple montre comment créer un glyphe de ligne unique à partir de deux séquences unidimensionnelles x et y à l’aide du glyphe line(). Vous pouvez préciser la largeur et la hauteur du graphique, le titre et les étiquettes des axes dans la fonction figure(). Dans le glyphe line(), définissez l’épaisseur via l’argument line_width et la couleur via l’argument color.

Simple Line Plot

Créer des graphiques en barres

#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)

Bar Plot

Créer des graphiques en surfaces (patches)

Un graphique en surfaces colore des régions pour montrer qu’un groupe ou une zone partage des caractéristiques similaires. Voici comment créer un simple graphique en surfaces :

# 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)

Patch Plots

On distingue trois régions : la première est [1,1,2] associée à [2,5,6] sur l’axe des ordonnées. La deuxième couvre [2,2,3] sur l’axe des abscisses et [3,6,7] sur l’axe des ordonnées, et la troisième correspond à [2,3,5,4] sur l’axe des abscisses et [2,4,7,8] sur l’axe des ordonnées. Le glyphe patches utilise des couleurs différentes pour matérialiser chaque région. L’argument line_color définit la couleur de bordure de chaque surface.

Créer des nuages de points

Les data scientists utilisent souvent les nuages de points pour analyser la relation entre deux variables. Voici comment créer un nuage de points simple avec Bokeh :

# 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)

Scatter Plots

Le code utilise des marqueurs circulaires pour matérialiser les intersections des listes x et y dans le nuage de points. À la place des cercles, vous pouvez employer d’autres marqueurs, par exemple :

  • cross()
  • x()
  • diamond()
  • diamond_cross()
  • circle_x()
  • circle_cross()
  • triangle()
  • inverted_triangle()
  • square_x()
  • square_cross()
  • asterisk()

L’argument size = 30 définit la taille de chaque cercle. La figure ci-dessous récapitule tous les marqueurs disponibles dans Bokeh.

Bokeh Markers

Source : Bokeh.org

L’argument alpha contrôle la transparence des cercles. Sa valeur est comprise entre 0 et 1, 0 étant entièrement transparent et 1 totalement opaque.

Conclusion

Ce tutoriel présente Bokeh comme un outil de visualisation interactif et de haut niveau. Il pose les bases de ce que vous pouvez attendre en utilisant Bokeh. Vous avez vu comment créer des graphiques en lignes, en barres, en surfaces et des nuages de points dans Bokeh à l’aide du concept de glyphes. Pour aller plus loin, consultez la documentation Bokeh pour découvrir la variété de graphiques que vous pouvez créer.

Sujets

Contenus associés

Tutoriel

Tableaux Python

Tutoriel

Tutoriel Python sur les structures de données