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

29
demandé sur Brent Newey 2011-08-16 21:27:06

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()
35
répondu Gary Kerr 2011-08-16 17:52:08

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.

8
répondu TheMuellenator 2018-07-12 09:09:27