Cours
Python Pie Chart : Construire et styliser avec Pandas et Matplotlib
Les diagrammes circulaires sont l'un des graphiques les plus populaires pour visualiser les proportions. Vous les connaissez probablement déjà, mais si ce n'est pas le cas, imaginez une grosse tarte ou un fromage suisse rond, coupé en tranches de différentes tailles.
Python offre de multiples façons de créer des diagrammes circulaires. Dans ce tutoriel, nous allons nous concentrer sur la façon de créer des diagrammes circulaires en Python en utilisant Matplotlib et Pandas, deux des packages d'analyse de données les plus populaires en Python. Nous structurerons l'article par méthode, afin que vous puissiez vous concentrer sur l'approche et la syntaxe qui conviennent le mieux à votre flux de travail.
Outre ces méthodes, nous vous donnerons quelques conseils pour améliorer le dépannage, l'accessibilité et l'utilisation des diagrammes circulaires. Enfin, nous examinerons également d'autres types de diagrammes qui peuvent être plus appropriés que les diagrammes circulaires dans certains scénarios.
Comment créer des diagrammes circulaires en Python
Je vais vous montrer deux façons différentes de créer un diagramme circulaire Python, et vous pourrez décider vous-même de la méthode que vous préférez. Les deux sont populaires et constituent de bonnes options, vous ne pouvez donc pas vous tromper.
Méthode 1 : Graphiques en camembert avec Matplotlib
Commençons par analyser comment créer un diagramme circulaire avec Matplotlib.
Pour cette section, nous analyserons les données relatives aux différents cours disponibles dans le catalogue de cours DataCamp, que vous pouvez trouver ici. (J'ai consulté le catalogue et compté le nombre de cours disponibles dans chaque technologie et j'ai créé un tableau avec ces informations).
Comment créer le graphique
Pour créer notre premier diagramme circulaire avec Matplotlib, nous pouvons utiliser la fonction plt.pie()
. Nous utiliserons une liste du nombre de cours disponibles pour différentes technologies de données et d'IA (chacune représentant la taille du coin), ainsi qu'une seconde liste contenant les noms des technologies, qui seront inclus dans le graphique à l'aide du paramètre labels
. Vous pouvez également utiliser plt.legend()
pour ajouter une légende distincte.
Comme d'habitude, n'oubliez pas d'exécuter la commande plt.show()
à la fin de votre code pour afficher correctement le graphique Matplotlib.
import pandas as pd
import matplotlib.pyplot as plt
courses = [164, 127, 31, 31,12, 11]
labels = ['Python','R','SQL','Power BI','Excel','ChatGPT']
dictionary = {'courses':courses, 'labels':labels}
python_pie_chart_df = pd.DataFrame(dictionary)
plt.pie(x = python_pie_chart_df.courses, labels = python_pie_chart_df.labels)
plt.show()
plt.pie(x = python_pie_chart_df.courses)
plt.legend(labels = python_pie_chart_df.labels, loc = [0.95,0.35])
plt.show()
En outre, nous pourrions également inclure le pourcentage de chaque coin en utilisant le paramètre autopct
. Dans l'exemple suivant, nous incluons la taille des cales en utilisant une décimale.
plt.pie(x = python_pie_chart_df.courses, labels = python_pie_chart_df.labels, autopct='%1.1f%%')
plt.show()
Comment personnaliser le graphique
Les graphiques en camembert dans Matplotlib, ainsi que les tranches qui les composent, sont hautement personnalisables. Voyons quelques-unes des options offertes par la fonction pie.plot()
.
Pour changer la couleur des tranches, nous pouvons utiliser le paramètre colors
. Nous utiliserons ce paramètre pour appliquer la palette de couleurs de DataCamp à notre graphique.
datacamp_palette = ['#03ef62','#06bdfc','#ff6ea9','#ff931e','#ff5400','#7933ff']
plt.pie(x = python_pie_chart_df.courses, labels = python_pie_chart_df.labels, colors = datacamp_palette, autopct='%1.1f%%')
plt.show()
C'est bien mieux, non ? Mais nous pouvons faire beaucoup plus pour personnaliser notre diagramme circulaire. Par exemple, nous pouvons jouer avec la distance des étiquettes et les pourcentages, en utilisant les paramètres labeldistance
et pctdistance
, respectivement, et choisir un angle pour commencer le découpage avec le paramètre startangle
.
plt.pie(x = python_pie_chart_df.courses, labels = python_pie_chart_df.labels, colors = datacamp_palette, autopct='%1.1f%%',
pctdistance= 0.8, labeldistance=1.1, startangle=180)
plt.show()
Enfin, imaginez que vous fassiez une présentation et que vous souhaitiez vous concentrer sur les cours R. Un moyen pratique de le mettre en évidence est d'exploser ce coin à l'aide du paramètre explode
, comme suit :
explode = (0, 0.1, 0, 0, 0, 0) # only "explode" the 2nd slice (i.e. 'R')
plt.pie(x = python_pie_chart_df.courses, labels = python_pie_chart_df.labels,
colors = datacamp_palette, autopct='%1.1f%%',
pctdistance= 0.8, labeldistance=1.1,
startangle=180, explode=explode)
plt.show()
Comment sauvegarder le graphique
Après avoir créé votre diagramme circulaire, vous êtes prêt à le partager avec vos collaborateurs. Vous pouvez le faire en utilisant la fonction plt.savefig()
, qui prend le nom du fichier en entrée de la fonction et vous permet de l'enregistrer dans différents formats, tels que .png, .jpg, .svg ou .pdf. En outre, vous pouvez utiliser dpi
pour modifier la résolution de l'image.
Voici un exemple d'enregistrement de votre diagramme circulaire au format .jpg avec 200 points par pouce.
plt.pie(x = df.courses, labels = df.labels,
colors = datacamp_palette, autopct='%1.1f%%',
pctdistance= 0.8, labeldistance=1.1,
startangle=180, explode=explode)
plt.savefig('demo.jpg', dpi =200)
Vous pouvez en savoir plus sur la façon de sauvegarder correctement une visualisation dans notre cours Introduction à la visualisation de données avec Matplotlib.
Méthode 2 : Diagrammes à secteurs avec Pandas
Maintenant que vous savez comment créer un diagramme circulaire avec Matplotlib, voyons comment cela fonctionne avec Pandas.
Comment créer le graphique
Pandas dispose d'une méthode plot()
qui peut être utilisée pour dessiner plusieurs types de graphiques. Cette méthode fonctionne à la fois sur les objets DataFrame et Series dans Pandas. L'argument kind
de la méthode plot()
peut vous aider à spécifier le type de graphique. Dans notre cas, vous pouvez créer un diagramme circulaire à l'aide de kind ='pie'
. Vous pouvez également ajouter leparamètre labels
pour inclure un nom dans chaque tranche et leparamètre autopct
pour ajouter les pourcentages de chaque tranche.
python_pie_chart_df['courses'].plot(kind='pie', labels=python_pie_chart_df['labels'], autopct='%1.1f%%')
plt.show()
Comment personnaliser le graphique
La méthode plot()
de Pandas est un outil qui permet de tracer rapidement des courbes, mais elle est assortie d'options de personnalisation limitées. Heureusement, la méthode utilise Matplotlib comme backend, ce qui signifie que vous pouvez utiliser la syntaxe de Matplotlib en dehors de la méthode pour personnaliser votre visualisation. Vous trouverez ci-dessous un exemple de combinaison de Pandas et Matplotlib.
ax= python_pie_chart_df['courses'].plot(kind='pie', labels=python_pie_chart_df['labels'], autopct='%1.1f%%',
colors=datacamp_palette, figsize=(5,5))
ax.set_title('Pie Chart DatataCamp Courses')
ax.set_ylabel(None)
plt.show()
Comment sauvegarder le graphique
L'enregistrement des diagrammes circulaires dans Pandas est exactement le même que dans Matplotlib, car Pandas s'appuie sur Matplotlib sous le capot.
ax= python_pie_chart_df['courses'].plot(kind='pie', labels=python_pie_chart_df['labels'], autopct='%1.1f%%',
colors=datacamp_palette, figsize=(5,5))
ax.set_title('Pie Chart DatataCamp Courses')
ax.set_ylabel(None)
plt.savefig('demo.png')
Dépannage des diagrammes à secteurs
Pour que vos diagrammes circulaires s'affichent correctement, vous devez fournir à Matplotlib les bonnes données. Cela signifie que vous devez toujours appliquer des techniques de nettoyage des données dans votre DataFrame, telles que la suppression des valeurs nulles à l'aide de pd.dropna()
et la définition des bons types de données pour vos colonnes d'entrée.
De plus, la personnalisation sera essentielle pour afficher un graphique circulaire convaincant et percutant. Cependant, gardez à l'esprit que si vous utilisez Pandas, les personnalisations avancées telles que l'explosion peuvent ne pas être prises en charge. Comme nous l'avons déjà mentionné, si vous avez besoin de plus de contrôle sur votre diagramme circulaire, vous devrez peut-être ajouter du code Matplotlib à vos scripts.
Améliorer l'accessibilité et la facilité d'utilisation
Lorsque vous présentez vos diagrammes circulaires, vous devez respecter les bonnes pratiques.
- Évaluez votre public : En règle générale, vous devez toujours faire preuve d'empathie à l'égard du public auquel s'adresse votre visualisation. Cela signifie qu'il faut bien comprendre le domaine d'expertise, le niveau de connaissances techniques et les centres d'intérêt de votre public.
- Désencombrez : Pour éviter de créer des visualisations illisibles et encombrées, demandez-vous si ce que vous incluez est pertinent pour le public et supprimez les éléments inutiles autant que possible. Dans le cas des diagrammes circulaires, vous devez éviter les effets 3D ou les ombres, car ils peuvent gêner l'interprétation.
- Gardez un œil sur les polices de caractères : Même s'il peut être tentant d'utiliser des polices et des tailles différentes, la règle générale est de s'en tenir à une seule police et de ne pas dépasser trois tailles différentes. Vous devez respecter la hiérarchie des polices et faire en sorte que les titres soient plus grands que le corps du texte. Vous devez également utiliser des caractères gras pour mettre en évidence les éléments clés et les titres.
- Utilisez les couleurs de manière créative : La couleur est l'un des aspects les plus accrocheurs de toute visualisation de données. C'est pourquoi il faut bien réfléchir au choix de la palette de couleurs de votre visualisation de données. Cela signifie que vous devez utiliser une palette de couleurs cohérente dans toutes vos visualisations et utiliser systématiquement la couleur pour distinguer les groupes, les niveaux d'importance et les différents types de hiérarchie de l'information.
- Test sur d'autres appareils : Il est toujours bon de tester vos visuels pour voir comment ils se présentent sur plusieurs appareils.
La visualisation des données peut être considérée comme un art. L'intuition et le bon goût peuvent faire la différence, mais vous devez toujours tenir compte de la théorie sous-jacente. Pour en savoir plus sur les meilleures pratiques pour une visualisation efficace des données, consultez notre fiche d'information sur la communication et la narration des données. En outre, si vous travaillez avec des tableaux de bord, cet article sur les meilleures pratiques pour la conception de tableaux de bord vaut la peine d'être lu.
Alternatives aux camemberts
À vrai dire, les diagrammes circulaires font partie des diagrammes les plus critiqués. Il a été démontré que l'homme n'est pas très doué pour interpréter les angles. Nous pouvons illustrer cela avec le diagramme circulaire que nous avons utilisé précédemment. Considérez les tranches d'Excel et de ChatGPT. Pouvez-vous dire au premier coup d'œil lequel a le plus grand angle ?
C'est pourquoi de nombreux experts en visualisation de données recommandent d'utiliser d'autres graphiques pour représenter les proportions, en particulier lorsqu'il s'agit de nombreuses catégories, comme les diagrammes à barres et les diagrammes à barres empilées, les treemaps ou même les diagrammes en forme de beigne. Vous pouvez en savoir plus sur ces alternatives dans notre article Types de tracés de données et comment les créer en Python.
Conclusion
Félicitations pour avoir atteint la fin du tutoriel. Python est un langage de programmation très polyvalent, offrant plusieurs bibliothèques et approches pour créer des diagrammes circulaires. Dans ce tutoriel, nous analysons comment créer des diagrammes circulaires avec Matplotlib et Pandas. Les deux sont également adaptés à la tâche et présentent des similitudes notables. L'idée n'est pas d'en choisir un, mais de les utiliser de manière interchangeable, en fonction de vos besoins et de votre flux de travail.
Si vous souhaitez en savoir plus sur les camemberts et, plus largement, sur la visualisation de données en Python, DataCamp est là pour vous aider. Consultez nos supports dédiés pour devenir et vous préparer à devenir un magicien de la visualisation !
- Cours d'introduction à Python
- Parcours de développeur Python
- Cursus de compétences en programmation Python
- Cours de réflexion statistique en Python (1ère partie)

Je suis analyste de données indépendant et je collabore avec des entreprises et des organisations du monde entier dans le cadre de projets de science des données. Je suis également formateur en science des données avec plus de 2 ans d'expérience. Je rédige régulièrement des articles sur les sciences des données en anglais et en espagnol, dont certains ont été publiés sur des sites web réputés tels que DataCamp, Towards Data Science et Analytics Vidhya En tant que scientifique des données ayant une formation en sciences politiques et en droit, mon objectif est de travailler à l'interaction des politiques publiques, du droit et de la technologie, en tirant parti du pouvoir des idées pour faire avancer des solutions et des récits innovants qui peuvent nous aider à relever des défis urgents, à savoir la crise climatique. Je me considère comme un autodidacte, un apprenant permanent et un fervent partisan de la pluridisciplinarité. Il n'est jamais trop tard pour apprendre de nouvelles choses.
FAQ
Qu'est-ce qu'un diagramme circulaire et quand dois-je l'utiliser ?
Un diagramme circulaire est un type de graphique dans lequel un cercle est divisé en secteurs qui représentent chacun une proportion de l'ensemble. Il est alors possible de représenter les proportions.
Comment créer un diagramme circulaire dans Matplotlib ?
La façon la plus simple de créer un diagramme circulaire avec Matplotlib est d'utiliser la fonction plt.pie()
, qui comporte plusieurs paramètres de personnalisation.
Comment créer un diagramme circulaire dans Pandas ?
La méthode la plus simple pour créer un diagramme circulaire avec Matplotlib est la méthode Series.plot.(kind=’pie’)
. Il permet une visualisation rapide sur les DataFrame de Pandas mais dispose d'options de personnalisation limitées par rapport à Matplotlib.
Quelles sont les meilleures pratiques en matière de création de diagrammes circulaires ?
Vous devez toujours suivre les meilleures pratiques pour créer vos visualisations. Il s'agit notamment de simplifier au maximum les diagrammes circulaires, d'éviter les éléments superflus, de choisir des palettes de couleurs intuitives et d'adapter le tracé en fonction de votre public.
Quelles sont les principales limites des diagrammes circulaires ?
L'être humain n'est pas très doué pour interpréter les angles, c'est pourquoi de nombreux experts en visualisation recommandent d'utiliser d'autres graphiques pour visualiser les proportions, tels que les diagrammes à barres.
Apprenez avec DataCamp
Cours
Understanding Machine Learning
Cours