2011-08-16 6 views
25

voglio avere etichette con dimensioni ridotte su un grafico a torta in Python per migliorare la visibilità Ecco il codiceCome impostare il formato di etichette su un grafico a torta in python

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() 

Grazie e applausi

risposta

29

Ci sono un paio di modi in cui puoi cambiare la dimensione del carattere delle etichette.

È possibile dynamically changet the rc settings. Aggiungi il seguente all'inizio del tuo script:

import matplotlib as mpl 
mpl.rcParams['font.size'] = 9.0 

Oppure puoi modificare le etichette dopo che sono state create. Quando chiami ax.pie è returns a tuple di (patch, testi, autotest). A titolo di esempio, modificare le poche righe finali del codice come segue:

patches, texts, autotexts = ax.pie(frac, colors=colors, labels=labels, autopct='%1.1f%%') 
texts[0].set_fontsize(4) 
plt.show() 
+1

Per impostare le dimensioni di tutte le etichette in una sola volta, utilizzare un elenco di comprensione: '[_.set_fontsize (4) per _ nei testi]'. – DaveL17