Graphique circulaire de Seaborn

Ammar Ali 18 avril 2022
Graphique circulaire de Seaborn

Ce tutoriel discutera de la création d’un graphique à secteurs en utilisant l’attribut pie de Matplotlib et les palettes de couleurs de Seaborn.

Créer un graphique à secteurs dans Seaborn

Le graphique à secteurs représente les données dans un graphique circulaire contenant des tranches de différentes couleurs. La taille de chaque tranche d’un graphique à secteurs dépend de la proportion de données numériques.

Le camembert est utilisé pour étudier la proportion de données numériques. Il montre la proportion de données en pourcentage d’un ensemble. Si une quantité a une proportion numérique plus élevée dans une donnée donnée, sa taille de tranche et son pourcentage seront plus grands que les autres tranches présentes dans le graphique à secteurs.

Si nous voulons créer un camembert en utilisant seaborn en Python, nous devons utiliser l’attribut pie de Matplotlib et les palettes de couleurs de Seaborn. Nous devons transmettre les données d’entrée et la palette de couleurs pour créer un camembert.

Par exemple, créons un graphique à secteurs de certaines données aléatoires. Voir le code ci-dessous.

import matplotlib.pyplot as plt
import seaborn as sns

data = [35, 21, 29, 39, 11]
colors = sns.color_palette("pastel")
plt.pie(data, colors=colors)
plt.show()

Production :

camembert utilisant seaborn

Dans le code ci-dessus, nous avons utilisé la palette de couleurs pastel de Seaborn, mais nous pouvons changer la palette de couleurs à notre guise. Seaborn propose de nombreuses options de palette de couleurs, telles que profondes, en sourdine, daltoniennes, lumineuses et sombres.

Nous devons passer la palette de couleurs comme une chaîne dans l’attribut color_palette(). L’attribut pie a beaucoup de paramètres que nous pouvons modifier, comme ajouter des étiquettes au graphique circulaire en utilisant un tableau de chaînes contenant le nom des étiquettes.

Nous pouvons également ajouter du texte à l’intérieur des tranches en utilisant le paramètre autopct. Par exemple, rendons le graphique à secteurs ci-dessus plus lisible en ajoutant des étiquettes, en modifiant la palette de couleurs et en ajoutant le pourcentage de tranche à l’intérieur de chaque tranche. Voir le code ci-dessous.

import matplotlib.pyplot as plt
import seaborn as sns

data = [35, 21, 29, 39, 11]
labels = ["slice 1", "slice 2", "slice 3", "slice 4", "slice 5"]
colors = sns.color_palette("bright")
plt.pie(data, labels=labels, colors=colors, autopct="%0.0f%%")
plt.show()

Production :

modification des propriétés d’un graphique à secteurs

Nous pouvons ajouter n’importe quel texte à l’intérieur de chaque tranche, mais nous avons ajouté le pourcentage de chaque donnée dans cet exemple. Nous pouvons également définir la distance du texte à l’intérieur de chaque tranche. Par défaut, la distance du texte est de 0,6, mais nous pouvons la modifier à l’aide du paramètre pctdistance.

Nous pouvons également définir la distance de l’étiquette à l’aide du paramètre labeldistance. Par défaut, la valeur de distance de l’étiquette est de 1,1, mais nous pouvons la remplacer par n’importe quelle valeur à virgule flottante. Si nous voulons créer un espace entre chaque tranche afin qu’il y ait un certain décalage, nous pouvons le faire en utilisant le paramètre d’explosion.

La valeur du paramètre d’explosion doit être un tableau de la même longueur que les données d’entrée. Par exemple, ajoutons un décalage entre chaque tranche du graphique à secteurs ci-dessus. Voir le code ci-dessous.

import matplotlib.pyplot as plt
import seaborn as sns

data = [35, 21, 29, 39, 11]
explode = [0.3, 0.02, 0.02, 0.02, 0.02]
labels = ["slice 1", "slice 2", "slice 3", "slice 4", "slice 5"]
colors = sns.color_palette("bright")
plt.pie(data, labels=labels, colors=colors, autopct="%0.0f%%", explode=explode)
plt.show()

Production :

décalage entre les tranches du graphique à secteurs

Nous pouvons également dessiner des ombres sous le graphique à secteurs en utilisant le paramètre shadow. Par défaut, le paramètre shadow est défini sur false, mais nous pouvons le définir sur true. Par défaut, la première tranche commencera à partir de 0 degré, mais nous pouvons changer cela en utilisant le paramètre startangle et en définissant sa valeur sur n’importe quelle valeur à virgule flottante.

Par défaut, les tranches partiront de l’axe des x et suivront le sens antihoraire, mais nous pouvons le définir dans le sens horaire en définissant la valeur du paramètre sur false. Nous pouvons également définir les propriétés du texte présent dans le camembert, comme sa taille de police ou sa couleur, en utilisant l’argument textprops.

Nous pouvons également définir les propriétés du coin ou des tranches comme leur largeur de ligne à l’aide du paramètre wedgeprops. Par défaut, le cadre est défini sur false, c’est pourquoi nous ne pouvons pas voir le cadre, mais nous pouvons le définir sur true en utilisant le paramètre frame.

Par défaut, le centre du graphique à secteurs est à 0, mais nous pouvons le changer à n’importe quelle valeur en utilisant le paramètre center. Nous pouvons également faire pivoter les étiquettes dans le sens de la tranche en utilisant le paramètre rotatelabel et en définissant sa valeur sur true.

Par exemple, modifions les paramètres comme mentionné ci-dessus du camembert. Voir le code ci-dessous.

import matplotlib.pyplot as plt
import seaborn as sns

data = [35, 21, 29, 39, 11]
explode = [0.3, 0.02, 0.02, 0.02, 0.02]
labels = ["slice 1", "slice 2", "slice 3", "slice 4", "slice 5"]
colors = sns.color_palette("bright")
plt.pie(
    data,
    labels=labels,
    colors=colors,
    autopct="%0.0f%%",
    explode=explode,
    shadow="True",
    startangle=90,
    textprops={"color": "Green", "fontsize": 16},
    wedgeprops={"linewidth": 6},
    frame="true",
    center=(0.1, 0.1),
    rotatelabels="true",
)
plt.show()

Production :

modification des valeurs des paramètres du graphique à secteurs

Auteur: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Article connexe - Seaborn Plot