2009-12-16 11 views

Respuesta

10

Mundial de colores por defecto, anchos de línea, tamaños, etc., se pueden ajustar con el diccionario rcParams:

import matplotlib 
matplotlib.rcParams['text.color'] = 'r' 
matplotlib.rcParams['lines.linewidth'] = 2 

Una lista completa de los parametros se puede encontrar here.

También puede ajustar el ancho de línea después de se dibuja el gráfico de sectores:

from matplotlib import pyplot as plt 
fig = plt.figure(figsize=(8,8)) 
pieWedgesCollection = plt.pie([10,20,50,20],labels=("one","two","three","four"),colors=("b","g","r","y"))[0] #returns a list of matplotlib.patches.Wedge objects 
pieWedgesCollection[0].set_lw(4) #adjust the line width of the first one. 

Por desgracia, no puedo encontrar una manera de ajustar el color de la fuente o el tamaño del gráfico de sectores etiquetas f rom the pie method o el objeto Wedge. Buscando en la fuente de axes.py (líneas 4606 en matplotlib 99.1) que se crean mediante el método Axes.text. Este método puede tomar un argumento de color y tamaño, pero esto no se usa actualmente. Sin necesidad de editar la fuente, su única opción puede ser la de hacerlo a nivel mundial como se describió anteriormente.

+0

Gracias, eso es de gran ayuda. \t Una adición: para establecer la línea ancha de la cuña real, debe usar (para la primera cuña): pieWedgesCollection [0] [0] .set_linewidth (0) – Sam

2
matplotlib.rcParams['font.size'] = 24 

hace cambiar el gráfico de sectores etiquetas de tamaño de la fuente

15

Mostrando un poco tarde a la fiesta, pero me encontré con este problema y no querían alterar mis rcParams.

Puede cambiar el tamaño del texto de las etiquetas o porcentajes automáticos manteniendo el texto devuelto al crear su gráfico circular y modificarlos adecuadamente utilizando matplotlib.font_manager.

Puede leer más sobre el uso del matplotlib.font_manager aquí: http://matplotlib.sourceforge.net/api/font_manager_api.html

construido en el tamaño de las fuentes enumerados en la API; "Tamaño: o bien un valor relativo de 'xx-pequeño', 'x-small', 'pequeño', 'medio', 'grande', 'X-Grande', 'XX-Large' o un tamaño de fuente absoluto, por ejemplo, 12"

from matplotlib import pyplot as plt 
from matplotlib import font_manager as fm 

fig = plt.figure(1, figsize=(6,6)) 
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) 
plt.title('Raining Hogs and Dogs') 

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs' 
fracs = [15,30,45, 10] 

patches, texts, autotexts = ax.pie(fracs, labels=labels, autopct='%1.1f%%') 

proptease = fm.FontProperties() 
proptease.set_size('xx-small') 
plt.setp(autotexts, fontproperties=proptease) 
plt.setp(texts, fontproperties=proptease) 

plt.show() 

alt text

+0

Eso funciona genial, gracias. ¿Hay alguna manera similar de cambiar el grosor de línea entre rebanadas? –

Cuestiones relacionadas