Cómo establecer el tamaño de las etiquetas en un gráfico circular en python


Quiero tener etiquetas con tamaño pequeño en un piechart en python para mejorar la visibilidad aquí está el código

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

Gracias y saludos

Author: Brent Newey, 2011-08-16

2 answers

Hay un par de maneras de cambiar el tamaño de fuente de las etiquetas.

Puede cambiar dinámicamente la configuración de rc. Agregue lo siguiente en la parte superior de su script:

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

O puede modificar las etiquetas después de que se hayan creado. Cuando llamas a ax.pie devuelve una tupla de (parches, textos, autotextos). Como ejemplo, modifique sus últimas líneas de código de la siguiente manera:

patches, texts, autotexts = ax.pie(frac, colors=colors, labels=labels, autopct='%1.1f%%')
texts[0].set_fontsize(4)
plt.show()
 35
Author: Gary Kerr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-08-16 17:52:08

La forma más sencilla de cambiar el tamaño de fuente en un gráfico circular es directamente a través del textprops argumento en la función pie(). Usando el código anterior añádelo así:

ax.pie(frac, colors=colors ,labels=labels, 
       autopct='%1.1f%%', textprops={'fontsize': 14})

De esa manera, solo puede pasar un diccionario con el tamaño de fuente deseado (por ejemplo, 14). No hay que jugar con rcParams o devolver valores de la llamada a la función.

 8
Author: TheMuellenator,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-12 09:09:27