La fonction pie dans Matplotlib permet de créer des graphiques circulaires, également connus sous les noms de "diagrammes camembert" ou "diagrammes en secteurs". Les graphiques de type "camember" sont utiles pour représenter des données catégorielles ou de pourcentage.
Voici un exemple simple de création d'un graphique circulaire en utilisant la fonction pie.
import matplotlib.pyplot as plt
# Données d'exemple
labels = ["A", "B", "C", "D"]
sizes = [15, 30, 45, 10]
# Création du graphique circulaire
plt.pie(sizes, labels=labels, autopct="%1.1f%%")
# Ajout de titre
plt.title("Exemple de graphique circulaire")
# Affichage de la figure (surtout utile, si MPL est utilisé de manière standalone)
plt.show()
Dans ce nouvel exemple, nous allons afficher la populatité de langages programmation en se basant sur les données du site https://www.tiobe.com/tiobe-index/. Nous allons en profiter pour paufiner un peu plus notre diagramme.
import matplotlib.pyplot as plt
# Nous commençons par définir la popularité des 5 premiers langages de programmation du classement.
popularity = {"Python": 14.51, "C": 14.41, "Java": 13.23, "C++": 12.96, "C#": 8.21}
# On complète à 100% avec une nouvelle tranche dans le diagramme.
popularity["Autre"] = 100 - sum(popularity.values())
# On calcule le décalage du secteur "Python", via une liste en intention.
explode = [0.15 if lang == "Python" else 0 for lang in popularity]
# On génére le diagramme.
plt.title("Programming Language Popularity (April 2023, from tiobe.com)")
plt.pie(popularity.values(), # Les valeurs pour chaque secteur du diagramme
labels=popularity.keys(), # Les labels pour chaque secteur
explode=explode, # Les décalages pour faire ressortir Python
autopct='%.2f %%', # Le format utilisé pour l'affichage des valeurs (2 chiffres après la vigule)
shadow=True, # On veut une ombre portée
startangle=90, # L'angle de démarrage pour afficher la première valeur
counterclock=False) # Dans quel sens on affiche les données
# Affichage de la figure (surtout utile, si MPL est utilisé de manière standalone).
plt.show()