Création de diagrammes Sankey

PythonPythonBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Les diagrammes Sankey sont des diagrammes de flux qui montrent le mouvement de ressources ou d'énergie entre différents stades ou systèmes. Dans ce tutoriel, nous allons utiliser la bibliothèque Matplotlib en Python pour créer des diagrammes Sankey.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet d'étude pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous résoudrons rapidement le problème pour vous.

Importation des bibliothèques nécessaires

Avant de commencer à créer des diagrammes Sankey, nous devons importer les bibliothèques nécessaires. Dans ce tutoriel, nous allons utiliser la bibliothèque Matplotlib.

import matplotlib.pyplot as plt
from matplotlib.sankey import Sankey

Créer un diagramme Sankey simple

Nous allons commencer par créer un diagramme Sankey simple qui montre comment utiliser la classe Sankey.

Sankey(flows=[0.25, 0.15, 0.60, -0.20, -0.15, -0.05, -0.50, -0.10],
       labels=['', '', '', 'Premier', 'Second', 'Troisième', 'Quatrième', 'Cinquième'],
       orientations=[-1, 1, 0, 1, 1, 1, 0, -1]).finish()
plt.title("Les paramètres par défaut produisent un diagramme comme celui-ci.")

Ce code produira un diagramme Sankey avec les paramètres par défaut, qui incluent les étiquettes et les orientations des flux. Le diagramme résultant sera affiché avec le titre "Les paramètres par défaut produisent un diagramme comme celui-ci."

Personnaliser le diagramme Sankey

Nous pouvons personnaliser le diagramme Sankey en changeant les flux, les étiquettes, les orientations et d'autres paramètres. Dans cet exemple, nous allons créer un diagramme avec des chemins plus longs et une étiquette au milieu.

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, xticks=[], yticks=[],
                     title="Diagramme de flux d'un composant")
sankey = Sankey(ax=ax, scale=0.01, offset=0.2, head_angle=180,
                format='%.0f', unit='%')
sankey.add(flows=[25, 0, 60, -10, -20, -5, -15, -10, -40],
           labels=['', '', '', 'Premier', 'Second', 'Troisième', 'Quatrième',
                   'Cinquième', 'Vive!'],
           orientations=[-1, 1, 0, 1, 1, 1, -1, -1, 0],
           pathlengths=[0.25, 0.25, 0.25, 0.25, 0.25, 0.6, 0.25, 0.25,
                        0.25],
           patchlabel="Composant\nA")  ## Arguments à matplotlib.patches.PathPatch
diagrams = sankey.finish()
diagrams[0].texts[-1].set_color('r')
diagrams[0].text.set_fontweight('bold')

Ce code créera un diagramme Sankey avec des chemins plus longs, une étiquette au milieu et d'autres paramètres personnalisés. Le diagramme résultant sera affiché avec le titre "Diagramme de flux d'un composant".

Connecter deux systèmes dans un diagramme Sankey

Nous pouvons également connecter deux systèmes dans un diagramme Sankey. Dans cet exemple, nous allons créer un diagramme avec deux systèmes connectés.

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, xticks=[], yticks=[], title="Deux systèmes")
flows = [0.25, 0.15, 0.60, -0.10, -0.05, -0.25, -0.15, -0.10, -0.35]
sankey = Sankey(ax=ax, unit=None)
sankey.add(flows=flows, label='un',
           orientations=[-1, 1, 0, 1, 1, 1, -1, -1, 0])
sankey.add(flows=[-0.25, 0.15, 0.1], label='deux',
           orientations=[-1, -1, -1], prior=0, connect=(0, 0))
diagrams = sankey.finish()
diagrams[-1].patch.set_hatch('/')
plt.legend()

Ce code créera un diagramme Sankey avec deux systèmes connectés. Le diagramme résultant sera affiché avec le titre "Deux systèmes".

Sommaire

Dans ce tutoriel, nous avons appris à créer des diagrammes Sankey à l'aide de la bibliothèque Matplotlib en Python. Nous avons commencé avec un diagramme simple puis l'avons personnalisé en changeant les flux, les étiquettes, les orientations et d'autres paramètres. Nous avons également appris à connecter deux systèmes dans un diagramme Sankey. Avec ces outils, nous pouvons créer des diagrammes de flux informatifs et visuellement attrayants pour diverses applications.