Introduction
Dans ce laboratoire, nous allons apprendre à utiliser la classe Sankey du module matplotlib.sankey pour créer une longue chaîne de connexions à l'aide de Python Matplotlib.
Conseils sur la machine virtuelle
Une fois le démarrage de la machine virtuelle terminé, cliquez sur le coin supérieur gauche pour basculer vers l'onglet Carnet d'adresses pour accéder au carnet Jupyter pour pratiquer.
Parfois, vous devrez peut-être attendre quelques secondes pour que le carnet Jupyter ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations du carnet Jupyter.
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 et modules nécessaires
Nous commençons par importer les bibliothèques et les modules nécessaires. Nous allons utiliser matplotlib.pyplot et matplotlib.sankey.
import matplotlib.pyplot as plt
from matplotlib.sankey import Sankey
Définir le nombre de liens par côté
Ensuite, nous définissons le nombre de liens par côté dans notre chaîne. Dans cet exemple, nous le définirons sur 6.
links_per_side = 6
Définir la fonction side
Maintenant, nous définissons la fonction side qui génère une chaîne latérale.
def side(sankey, n=1):
"""Génère une chaîne latérale."""
prior = len(sankey.diagrams)
for i in range(0, 2*n, 2):
sankey.add(flows=[1, -1], orientations=[-1, -1],
patchlabel=str(prior + i),
prior=prior + i - 1, connect=(1, 0), alpha=0.5)
sankey.add(flows=[1, -1], orientations=[1, 1],
patchlabel=str(prior + i + 1),
prior=prior + i, connect=(1, 0), alpha=0.5)
Définir la fonction corner
Ensuite, nous définissons la fonction corner qui génère un lien d'angle.
def corner(sankey):
"""Génère un lien d'angle."""
prior = len(sankey.diagrams)
sankey.add(flows=[1, -1], orientations=[0, 1],
patchlabel=str(prior), facecolor='k',
prior=prior - 1, connect=(1, 0), alpha=0.5)
Créer les objets figure et axe
Maintenant, nous créons les objets figure et axe à l'aide de plt.subplots().
fig, ax = plt.subplots()
Créer l'objet Sankey
Ensuite, nous créons l'objet Sankey à l'aide de l'objet ax et définissons l'unité sur None.
sankey = Sankey(ax=ax, unit=None)
Ajouter le premier diagramme
Nous ajoutons le premier diagramme à l'aide de sankey.add() avec flows=[1, -1] et orientations=[0, 1].
sankey.add(flows=[1, -1], orientations=[0, 1],
patchlabel="0", facecolor='k',
rotation=45)
Ajouter des chaînes latérales et des liens d'angle
Maintenant, nous ajoutons les chaînes latérales et les liens d'angle à l'aide des fonctions side() et corner().
side(sankey, n=links_per_side)
corner(sankey)
side(sankey, n=links_per_side)
corner(sankey)
side(sankey, n=links_per_side)
corner(sankey)
side(sankey, n=links_per_side)
Terminer et afficher le diagramme Sankey
Enfin, nous terminons le diagramme Sankey à l'aide de sankey.finish() et nous l'affichons à l'aide de plt.show().
sankey.finish()
plt.show()
Sommaire
Dans ce laboratoire, nous avons appris à utiliser la classe Sankey du module matplotlib.sankey pour créer une longue chaîne de connexions à l'aide de Python Matplotlib. Nous avons défini les fonctions side et corner pour générer respectivement les chaînes latérales et les liens d'angle. Nous avons également ajouté le premier diagramme, les chaînes latérales et les liens d'angle à l'aide de l'objet Sankey et affiché le diagramme à l'aide de plt.show().