2013-12-12 16 views
7

Sto cercando di rendere le linee sul grafico a torta matplotlib molto più chiare. Perché ho tante fette, le linee sono troppo spessi, come mostrato qui:Modifica delle proprietà della linea nel grafico a torta matplotlib

enter image description here

ho letto this example che suggerisce usando rcparam simili:

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

ma anche se può cambiare la colore del testo, non cambia la larghezza delle linee tra le fette di torta. Credo che sia perché le fette non sono governate da oggetti lineari ma da oggetti wedge. Quindi c'è un modo per impostare lo stile e il colore del bordo cuneo?

Grazie mille, Alex

risposta

11

provare questo:

ax = plt.subplot(111) 
wedges, texts = ax.pie(np.abs(np.random.randn(5))) 

for w in wedges: 
    w.set_linewidth(2) 
    w.set_edgecolor('cyan') 

pie

Inoltre, se hai solo un oggetto axes e non hanno accesso diretto ai cunei della torta si può recuperare le zeppe da ax.patches:

wedges = [patch for patch in ax.patches if isinstance(patch, matplotlib.patches.Wedge)] 
+0

Probabilmente si può anche passare in 'linewidth' quando si chiama' pie'. – tacaswell

+0

@tcaswell l'ho provato su matplotlib '1.3.1', non ha funzionato –

+1

Sì, è strano/non corretto. La maggior parte delle firme del plot hanno un '** kwarg', ma' pie' no. Potrei fare qualcosa al riguardo se avessi tempo oggi. – tacaswell

5

Im venendo tardi per questo partito, ma appena scoperto che, per i grafici a torta, invece di utilizzare:

plt.rcParams['lines.linewidth'] = 2 

è possibile utilizzare:

plt.rcParams['patch.linewidth'] = 0 

Inoltre, per cambiare il colore torta grafico linea utilizzare questo:

plt.rcParams['patch.edgecolor'] = 'white' 

invece di:

plt.rcParams['line.color'] = 'white' 
+0

Molto più intuitivo e più facile di quanto sopra per esigenze di base, grazie. – Konrad

Problemi correlati