Création d'un graphique Bar of Pie

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

Dans ce tutoriel, vous allez apprendre à créer un graphique "Bar of Pie" à l'aide de la bibliothèque Matplotlib de Python. Un graphique Bar of Pie est une combinaison d'un graphique camembert et d'un graphique barres empilées, où la première tranche du camembert est éclatée en un graphique en barres avec une répartition plus détaillée de ses caractéristiques. Ce graphique est utile lorsque vous voulez montrer la répartition d'un ensemble de données complet, tout en mettant en évidence des catégories spécifiques.

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

Avant de commencer à créer le graphique, nous devons importer les bibliothèques nécessaires. Dans ce cas, nous allons utiliser matplotlib.pyplot et numpy.

import matplotlib.pyplot as plt
import numpy as np

Définissez les données pour le graphique

Ensuite, nous devons définir les données que nous allons utiliser pour créer le graphique. Dans ce cas, nous allons utiliser les données suivantes :

## paramètres du graphique camembert
rapports_généraux = [.27,.56,.17]
étiquettes = ['Approuver', 'Désapprouver', 'Indécis']
éclatement = [0.1, 0, 0]

## paramètres du graphique en barres
rapports_âge = [.33,.54,.07,.06]
étiquettes_âge = ['Moins de 35 ans', '35 - 49 ans', '50 - 65 ans', 'Plus de 65 ans']

Créez le graphique camembert

Maintenant, nous pouvons créer le graphique camembert. Nous commençons par définir les objets figure et axe :

## créez la figure et attribuez les objets axe
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(9, 5))
fig.subplots_adjust(wspace=0)

Ensuite, nous définissons les paramètres du graphique camembert et le traçons :

## faites une rotation pour que la première tranche soit divisée par l'axe des x
angle = -180 * rapports_généraux[0]
tranchées, *_ = ax1.pie(rapports_généraux, autopct='%1.1f%%', startangle=angle,
                     labels=étiquettes, explode=éclatement)

Créez le graphique en barres

Ensuite, nous créons le graphique en barres empilées. Nous commençons par définir les paramètres du graphique :

## paramètres du graphique en barres
bas = 1
largeur =.2

## Ajouter depuis le haut correspond à la légende.
for j, (hauteur, étiquette) in enumerate(reversed([*zip(rapports_âge, étiquettes_âge)])):
    bas -= hauteur
    bc = ax2.bar(0, hauteur, largeur, bottom=bas, color='C0', label=étiquette,
                 alpha=0.1 + 0.25 * j)
    ax2.bar_label(bc, labels=[f"{hauteur:.0%}"], label_type='center')

Connectez le graphique camembert et le graphique en barres

Enfin, nous connectons le graphique camembert et le graphique en barres en utilisant ConnectionPatch :

## utilisez ConnectionPatch pour tracer des lignes entre les deux graphiques
theta1, theta2 = tranchees[0].theta1, tranchees[0].theta2
centre, r = tranchees[0].centre, tranchees[0].r
hauteur_barre = sum(rapports_âge)

## tracez la ligne de connexion supérieure
x = r * np.cos(np.pi / 180 * theta2) + centre[0]
y = r * np.sin(np.pi / 180 * theta2) + centre[1]
con = ConnectionPatch(xyA=(-largeur / 2, hauteur_barre), coordsA=ax2.transData,
                      xyB=(x, y), coordsB=ax1.transData)
con.set_color([0, 0, 0])
con.set_linewidth(4)
ax2.add_artist(con)

## tracez la ligne de connexion inférieure
x = r * np.cos(np.pi / 180 * theta1) + centre[0]
y = r * np.sin(np.pi / 180 * theta1) + centre[1]
con = ConnectionPatch(xyA=(-largeur / 2, 0), coordsA=ax2.transData,
                      xyB=(x, y), coordsB=ax1.transData)
con.set_color([0, 0, 0])
ax2.add_artist(con)
con.set_linewidth(4)

Affichez le graphique

Enfin, nous affichons le graphique :

plt.show()

Sommaire

Dans ce tutoriel, vous avez appris à créer un graphique "Bar of Pie" à l'aide de la bibliothèque Matplotlib de Python. Un graphique Bar of Pie est utile lorsque vous voulez montrer la distribution d'un ensemble de données complet, tout en mettant en évidence des catégories spécifiques. Vous avez également appris à utiliser ConnectionPatch pour connecter le graphique camembert et le graphique en barres.