Comment définir la taille des étiquettes sur un diagramme à secteurs en python
je veux avoir des étiquettes de petite taille sur un piechart en python pour améliorer la visibilité voici le code
import matplotlib.pyplot as plt
frac=[1.40 , 10.86 , 19.31 , 4.02 , 1.43 , 2.66 , 4.70 , 0.70 , 0.13 , 1.48, 32.96 , 1.11 , 13.30 , 5.86]
labels=['HO0900344', 'HO0900331', 'HO0900332', 'HO0900354',
'HO0900358', 'HO0900374', 'HO0900372', 'HO0900373',
'HO0900371', 'HO0900370', 'HO0900369', 'HO0900356',
'HO0900353', 'HO0900343']
fig = plt.figure(1, figsize=(6,6))
ax = fig.add_subplot(111)
ax.axis('equal')
colors=('b', 'g', 'r', 'c', 'm', 'y', 'burlywood', 'w')
ax.pie(frac,colors=colors ,labels=labels, autopct='%1.1f%%')
plt.show()
Merci et bravo
2 réponses
il y a plusieurs façons de changer la taille de police des étiquettes.
Vous pouvez modifier dynamiquement les paramètres de rc. Ajouter la suivante au début de votre script:
import matplotlib as mpl
mpl.rcParams['font.size'] = 9.0
Ou vous pouvez modifier les étiquettes après qu'ils ont été créés. Lorsque vous appelez ax.pie
renvoie un tuple (patchs, les textes, les autotexts). Par exemple, modifiez vos dernières lignes de code comme suit:
patches, texts, autotexts = ax.pie(frac, colors=colors, labels=labels, autopct='%1.1f%%')
texts[0].set_fontsize(4)
plt.show()
la façon la plus simple de changer la taille de la police sur un diagramme à secteurs est directement via le textprops
argument dans le pie()
fonction. En utilisant le code ci-dessus, ajoutez-le comme suit:
ax.pie(frac, colors=colors ,labels=labels,
autopct='%1.1f%%', textprops={'fontsize': 14})
de cette façon, vous pouvez simplement passer dans un dictionnaire avec votre fontsize désirée (par exemple, 14). Pas de déconner avec le rcParams
ou renvoie des valeurs à partir de l'appel de fonction.