Je veux avoir des étiquettes de petite taille sur un diagramme en morceaux 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
Il existe plusieurs façons de modifier la taille de police des étiquettes.
Vous pouvez modifier dynamiquement les paramètres rc . Ajoutez ce qui suit en haut de votre script:
import matplotlib as mpl
mpl.rcParams['font.size'] = 9.0
Ou vous pouvez modifier les étiquettes après leur création. Quand vous appelez ax.pie
it retourne un Tuple de (correctifs, textes, autotextes). 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()
Le moyen le plus simple de modifier la taille de la police sur un graphique à secteurs est directement via textprops
argument dans la fonction pie()
. 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 la taille de police souhaitée (par exemple, 14). Pas besoin de jouer avec rcParams
ou de renvoyer des valeurs de l'appel de fonction.