Maison  >  Article  >  développement back-end  >  Comment dessiner des graphiques empilés et des diagrammes circulaires à l'aide de Matplotlib

Comment dessiner des graphiques empilés et des diagrammes circulaires à l'aide de Matplotlib

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼avant
2019-06-04 15:42:453400parcourir

Matplotlib est une bibliothèque de traçage 2D Python qui peut produire des graphiques de qualité publication dans une variété de formats papier et d'environnements interactifs sur une variété de plates-formes.

Comment dessiner des graphiques empilés et des diagrammes circulaires à l'aide de Matplotlib

Dans le dernier tutoriel de visualisation de données Matplotlib, nous présenteronscomment créerdes graphiques à barres, des histogrammes et des nuages ​​de points. Aujourd'hui, nous vous proposons deux autres types de graphiques, les graphiques empilés et les diagrammes circulaires. Ces deux diagrammes étant très similaires, ils sont présentés ensemble.

Graphique empilé

Le graphique empilé est utilisé pour montrer la relation entre les « parties et le tout » au fil du temps. Un graphique empilé ressemble essentiellement à un diagramme circulaire, sauf qu'il change au fil du temps.

Considérons une situation dans laquelle nous avons 24 heures dans une journée et nous voulons voir comment nous passons notre temps. Nous divisons nos activités en : dormir, manger, travailler et jouer.

Supposons que nous souhaitions le suivre sur une période de 5 jours, donc nos données initiales ressembleront à ceci :

import matplotlib.pyplot as plt
days = [1,2,3,4,5]
sleeping = [7,8,6,11,7]
eating =   [2,3,4,3,2]
working =  [7,8,7,2,2]
playing =  [8,5,7,8,13]

Par conséquent, notre axe x inclura la variable jour, qui est 1, 2, 3, 4 et 5. Les composants individuels de la date sont ensuite conservés dans leurs activités respectives. Dessinez-les comme ceci :

plt.stackplot(days, sleeping,eating,working,playing, colors=['m','c','r','k'])
plt.xlabel('x')
plt.ylabel('y')
plt.title('Interesting Graph\nCheck it out')
plt.show()

Comment dessiner des graphiques empilés et des diagrammes circulaires à l'aide de Matplotlib

Ici, nous pouvons voir, au moins en couleur, comment nous passons notre temps. Le problème est que sans revenir sur le code, nous ne savons pas de quelle couleur correspond quoi. Le problème suivant est qu'avec les polygones, nous ne pouvons pas réellement ajouter des « étiquettes » aux données. Ainsi, partout où il y a plus que de simples lignes, avec un remplissage ou un diagramme empilé comme celui-ci, nous ne pouvons pas automatiquement marquer des parties spécifiques. Cela ne devrait pas arrêter les programmeurs. Nous pouvons résoudre ce problème :

import matplotlib.pyplot as plt
days = [1,2,3,4,5]
sleeping = [7,8,6,11,7]
eating =   [2,3,4,3,2]
working =  [7,8,7,2,2]
playing =  [8,5,7,8,13]
plt.plot([],[],color='m', label='Sleeping', linewidth=5)
plt.plot([],[],color='c', label='Eating', linewidth=5)
plt.plot([],[],color='r', label='Working', linewidth=5)
plt.plot([],[],color='k', label='Playing', linewidth=5)
plt.stackplot(days, sleeping,eating,working,playing, colors=['m','c','r','k'])
plt.xlabel('x')
plt.ylabel('y')
plt.title('Interesting Graph\nCheck it out')
plt.legend()
plt.show()

Comment dessiner des graphiques empilés et des diagrammes circulaires à l'aide de Matplotlib

Ce que nous faisons ici, c'est dessiner des lignes vides, leur donner la même couleur que notre tracé empilé et les étiqueter correctement. Nous leur donnons également une largeur de trait de 5 pour que les lignes apparaissent plus larges dans la légende. Nous pouvons désormais facilement voir comment nous passons notre temps.

Graphiques circulaires

Les diagrammes circulaires ressemblent beaucoup aux graphiques empilés, sauf qu'ils sont situés à un moment donné. Généralement, les diagrammes circulaires sont utilisés pour montrer comment une partie contribue à un tout, généralement en %. Heureusement, Matplotlib s'occupe de la taille des tranches et de tout le reste, il nous suffit de fournir la valeur numérique.

import matplotlib.pyplot as plt
slices = [7,2,2,13]
activities = ['sleeping','eating','working','playing']
cols = ['c','m','r','b']
plt.pie(slices,
        labels=activities,
        colors=cols,
        startangle=90,
        shadow= True,
        explode=(0,0.1,0,0),
        autopct='%1.1f%%')
plt.title('Interesting Graph\nCheck it out')
plt.show()

Comment dessiner des graphiques empilés et des diagrammes circulaires à l'aide de Matplotlib

Dans plt.pie, nous devons spécifier la "slice", qui est la taille relative de chaque partie. Nous spécifions ensuite une liste de couleurs pour les tranches correspondantes. Ensuite, nous pouvons choisir de spécifier « l’angle de départ » du graphique. Cela vous permet de commencer à dessiner n’importe où. Dans notre exemple, nous avons choisi un angle de 90 degrés pour le diagramme circulaire, ce qui signifie que le premier segment est une ligne verticale. Ensuite, nous avons la possibilité d'ajouter une ombre de la taille d'un caractère au dessin, puis nous pouvons même utiliser l'explosion pour extraire une tranche.

On a quatre tranches au total, donc pour exploser, si on ne veut retirer aucune tranche, on passe en 0,0,0,0. Si on veut extraire la première tranche, on passe 0.1,0,0,0.

Enfin, nous utilisons autopct et choisissons de placer le pourcentage sur le graphique.


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer