Diagramme en camembert et en anneau

Beginner

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

Introduction

Dans ce laboratoire, nous allons créer un camembert et un diagramme en anneau à l'aide de la bibliothèque Matplotlib de Python. Nous allons apprendre à les étiqueter avec une légende ainsi qu'avec des annotations.

Conseils sur la VM

Une fois le démarrage de la VM terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook 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 limites 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églerons rapidement le problème pour vous.

Importez les bibliothèques nécessaires et créez une figure avec des sous-graphiques

Nous commençons par importer les bibliothèques nécessaires et en créant une avec des sous-graphiques.

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(6, 3), subplot_kw=dict(aspect="equal"))

Créez un diagramme en camembert

Nous allons maintenant créer un diagramme en camembert pour une recette qui a quatre ingrédients : farine, sucre, beurre et baies.

recipe = ["375 g flour",
          "75 g sugar",
          "250 g butter",
          "300 g berries"]

data = [float(x.split()[0]) for x in recipe]
ingredients = [x.split()[-1] for x in recipe]

def func(pct, allvals):
    absolute = int(np.round(pct/100.*np.sum(allvals)))
    return f"{pct:.1f}%\n({absolute:d} g)"

wedges, texts, autotexts = ax.pie(data, autopct=lambda pct: func(pct, data),
                                  textprops=dict(color="w"))

ax.legend(wedges, ingredients,
          title="Ingredients",
          loc="center left",
          bbox_to_anchor=(1, 0, 0.5, 1))

plt.setp(autotexts, size=8, weight="bold")

ax.set_title("Matplotlib bakery: A pie")

plt.show()

Créez un diagramme en anneau

Nous allons maintenant créer un diagramme en anneau pour une recette qui a six ingrédients : farine, sucre, œuf, beurre, lait et levure.

recipe = ["225 g flour",
          "90 g sugar",
          "1 egg",
          "60 g butter",
          "100 ml milk",
          "1/2 package of yeast"]

data = [225, 90, 50, 60, 100, 5]

wedges, texts = ax.pie(data, wedgeprops=dict(width=0.5), startangle=-40)

bbox_props = dict(boxstyle="square,pad=0.3", fc="w", ec="k", lw=0.72)
kw = dict(arrowprops=dict(arrowstyle="-"),
          bbox=bbox_props, zorder=0, va="center")

for i, p in enumerate(wedges):
    ang = (p.theta2 - p.theta1)/2. + p.theta1
    y = np.sin(np.deg2rad(ang))
    x = np.cos(np.deg2rad(ang))
    horizontalalignment = {-1: "right", 1: "left"}[int(np.sign(x))]
    connectionstyle = f"angle,angleA=0,angleB={ang}"
    kw["arrowprops"].update({"connectionstyle": connectionstyle})
    ax.annotate(recipe[i], xy=(x, y), xytext=(1.35*np.sign(x), 1.4*y),
                horizontalalignment=horizontalalignment, **kw)

ax.set_title("Matplotlib bakery: A donut")

plt.show()

Conclusion

Nous avons appris à créer un diagramme en camembert et un diagramme en anneau à l'aide de Matplotlib, ainsi qu'à les étiqueter avec une légende et des annotations.

Résumé

Dans ce laboratoire, nous avons appris à créer un diagramme en camembert et un diagramme en anneau à l'aide de la bibliothèque Matplotlib de Python. Nous avons également appris à les étiqueter avec une légende et des annotations.