2009-12-16 10 views

risposta

10

colori di default globali, la larghezza delle linee, dimensioni, ecc, possono essere regolati con il dizionario rcParams:

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

Un elenco completo dei params può essere trovato here.

Si può anche regolare la larghezza della linea dopo si disegna il grafico a torta:

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. 

Purtroppo, non riesco a trovare un modo per regolare il colore del carattere o la dimensione del grafico a torta etichette f rom il metodo pie o l'oggetto Wedge. Cercando nella sorgente di axes.py (righe 4606 su matplotlib 99.1) vengono creati usando il metodo Axes.text. Questo metodo può richiedere un argomento di colori e dimensioni, ma questo non è attualmente utilizzato. Senza modificare la fonte, la tua unica opzione potrebbe essere quella di farlo globalmente come descritto sopra.

+0

Grazie, che è molto utile. \t Una aggiunta: per impostare la larghezza della linea del cuneo effettivo, è necessario utilizzare (per il primo cuneo): pieWedgesCollection [0] [0] .set_linewidth (0) – Sam

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

fa cambiare il grafico a torta etichette dimensione del carattere

15

Mostrando un po 'tardi per il partito, ma ho riscontrato questo problema e non voleva alterare i miei rcParams.

È possibile ridimensionare il testo per etichette o auto-percentuali mantenendo il testo restituito dalla creazione del grafico a torta e modificandoli in modo appropriato utilizzando matplotlib.font_manager.

Si può leggere di più su come utilizzare il matplotlib.font_manager qui: http://matplotlib.sourceforge.net/api/font_manager_api.html

Costruito in dimensioni dei caratteri sono elencati nella api; "dimensione: un valore relativo di" xx-small "," x-small "," small "," medium "," large "," x-large "," xx-large "o una dimensione assoluta del carattere, ad esempio 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

Che funziona benissimo, grazie. C'è un modo simile per cambiare il peso della linea tra le fette? –

Problemi correlati