Diagramme circulaire Matplotlib
Un diagramme circulaire est un graphique de visualisation de données couramment utilisé qui montre la proportion de chaque catégorie dans le total.
Dans pyplot, nous pouvons utiliser la méthodepie()pour dessiner un diagramme circulaire.
La syntaxe de la méthode pie() est la suivante :
matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=0, radius=1, counterclock=True, wedgeprops=None, textprops=None, center=0, 0, frame=False, rotatelabels=False, *, normalize=None, data=None)[source]
Description du paramètre :
-
x: Un tableau ou une liste de nombres à virgule flottante, les données utilisées pour dessiner le diagramme circulaire, représentant l'aire de chaque secteur.
-
explode: Un tableau, représentant l'écart entre les secteurs, avec une valeur par défaut de 0.
-
labels: Une liste, les étiquettes de chaque secteur, avec une valeur par défaut de None.
-
colors: Un tableau, représentant les couleurs de chaque secteur, avec une valeur par défaut de None.
-
autopct: Définit le format d'affichage du pourcentage de chaque secteur dans le diagramme circulaire,%d%%pourcentage entier,%0.1fune décimale,%0.1f%%pourcentage à une décimale,%0.2f%%pourcentage à deux décimales.
-
labeldistance: La position de dessin des annotations d'étiquettes, sous forme de ratio par rapport au rayon, avec une valeur par défaut de 1.1, par exemple<1alors elle est dessinée à l'intérieur du diagramme circulaire.
-
pctdistance:: Similaire à labeldistance, spécifie l'échelle de position d'autopct, avec une valeur par défaut de 0.6.
-
shadow:: Valeur booléenne True ou False, définit l'ombre du diagramme circulaire. La valeur par défaut est False, c'est-à-dire aucune ombre.
-
radius:: Définit le rayon du diagramme circulaire, la valeur par défaut est 1.
-
startangle:: Utilisé pour spécifier l'angle de départ du diagramme circulaire. Par défaut, il dessine dans le sens antihoraire depuis l'axe des x positifs ; s'il est défini à 90, il dessine depuis l'axe des y positifs.
-
counterclock: Valeur booléenne, utilisée pour spécifier s'il faut dessiner les secteurs dans le sens antihoraire. La valeur par défaut est True, c'est-à-dire dans le sens antihoraire ; False correspond au sens horaire.
- wedgeprops: Type dictionnaire, la valeur par défaut est None. Utilisé pour spécifier les propriétés des secteurs, telles que la couleur de la ligne de bordure, la largeur de la ligne de bordure, etc. Par exemple : wedgeprops={'linewidth':5} définit la largeur de ligne du secteur à 5.
- textprops: Type dictionnaire, utilisé pour spécifier les propriétés des étiquettes de texte, telles que la taille de police, la couleur de police, etc. La valeur par défaut est None.
- center: Liste de type float, utilisée pour spécifier la position centrale du diagramme circulaire. Par défaut : (0,0).
- frame: Type booléen, utilisé pour spécifier s'il faut dessiner le cadre du diagramme circulaire. Par défaut : False. Si True, dessiner le cadre des axes avec le diagramme.
- rotatelabels: Type booléen, utilisé pour spécifier s'il faut faire pivoter les étiquettes de texte. La valeur par défaut est False. Si True, faire pivoter chaque étiquette vers l'angle spécifié.
-
data: Utilisé pour spécifier les données. Si le paramètre data est défini, vous pouvez directement utiliser les colonnes du DataFrame comme valeurs pour des paramètres tels que x et labels sans les transmettre à nouveau.
De plus, la fonction pie() peut également renvoyer trois paramètres :
wedges: Une liste contenant les objets wedge.texts: Une liste contenant les objets d'étiquettes de texte.autotexts: Une liste contenant les objets d'étiquettes de texte générés automatiquement.
L'exemple suivant utilise simplement pie() pour créer un diagramme circulaire :
Exemple
import numpy as np
y = np.array([35, 25, 25, 15])
plt.pie(y)
plt.show()
Le résultat affiché est le suivant :

Définir les étiquettes et les couleurs de chaque secteur du diagramme circulaire :
Exemple
import numpy as np
y = np.array([35, 25, 25, 15])
plt.pie(y,
labels=['A','B','C','D'], # Définir les étiquettes du diagramme circulaire
colors=["#d5695d", "#5d8ca8", "#5B80A6", "#a564c9"], # Définir les couleurs du diagramme circulaire
)
plt.title("EXEMPLE Test de diagramme circulaire") # Définir le titre
plt.show()
Le résultat affiché est le suivant :

Mettre en évidence le deuxième secteur et formater le pourcentage de sortie :
Exemple
# Données
sizes = [15, 30, 45, 10]
# Étiquettes du diagramme circulaire
labels = ['A', 'B', 'C', 'D']
# Couleurs du diagramme circulaire
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']
# Mettre en évidence le deuxième secteur
explode = (0, 0.1, 0, 0)
# Tracer le diagramme circulaire
plt.pie(sizes, explode=explode, labels=labels, colors=colors,
autopct='%1.1f%%', shadow=True, startangle=90)
# Titre
plt.title("EXEMPLE Test de diagramme circulaire")
# Afficher le diagramme
plt.show()
Nous avons défini une liste sizes contenant 4 éléments, qui représente la proportion de chaque catégorie dans le total. Ensuite, nous avons défini une liste labels contenant 4 éléments, qui représente les étiquettes de chaque catégorie. Puis, nous avons défini une liste colors contenant 4 éléments, qui représente la couleur de chaque catégorie. Ensuite, nous avons défini un tuple explode contenant 4 éléments, qui est utilisé pour spécifier s'il faut mettre en évidence un secteur. Puis, nous avons appelé la fonction plt.pie pour dessiner le diagramme circulaire, en passant les paramètres ci-dessus. Enfin, nous avons ajouté un titre et appelé plt.show() pour afficher le diagramme.
Le résultat affiché est le suivant :

Exemple
import numpy as np
y = np.array([35, 25, 25, 15])
plt.pie(y,
labels=['A','B','C','D'], # Définir les étiquettes du diagramme circulaire
colors=["#d5695d", "#5d8ca8", "#5B80A6", "#a564c9"], # Définir les couleurs du diagramme circulaire
explode=(0, 0.2, 0, 0), # La deuxième partie est mise en évidence ; plus la valeur est grande, plus elle est éloignée du centre.
autopct='%.2f%%', # Formater le pourcentage affiché
)
plt.title("EXEMPLE Test de diagramme circulaire")
plt.show()

Autres extensionsRemarque :Par défaut, le premier secteur est dessiné à partir de l'axe des x et se déplace dans le sens inverse des aiguilles d'une montre :
