2013-04-29 5 views
6

Non riesco a capire come aggiungere un bordo attorno a una figura, è a mia conoscenza che questo sarebbe il figure.edgecolor parametro o savefig (edgecolor) ma questo non sembra funzionare. Sto usando matplotlib 1.1.1. Mi aspetterei questo codice per disegnare un bordo rosso intorno alla figura:matplotlib non può vedere l'effetto dell'impostazione di edgecolor in plt.savefig() o plt.figure()

import matplotlib.pyplot as plt 
plt.plot([1,2,3]) 
plt.savefig('test.png', edgecolor='r', facecolor='g') 

Quando guardo la figura ha un facecolor verde, ma non vedo un edgecolor rosso?

Quanto segue non funziona neanche:

import matplotlib.pyplot as plt 
plt.figure(edgecolor='r', facecolor='g') 
plt.plot([1,2,3]) 
plt.show() 

Anche in questo caso vedo la facecolor verde, ma non edgecolor rosso. Che cosa sto facendo di sbagliato?

Qualche idea?

risposta

6

In base alla documentazione di matplotlib.figure.Figure(), il limite della figura linewidth è impostato su 0.0 per impostazione predefinita. È possibile visualizzare la edgecolor se si imbatterà in questo valore in uno dei tuoi frammenti di codice:

import matplotlib.pyplot as plt 
plt.figure(linewidth=2) 
plt.plot([1,2,3]) 
plt.savefig('test.png', edgecolor='r', facecolor='g') 

Oppure:

import matplotlib.pyplot as plt 
plt.figure(edgecolor='r', facecolor='g', linewidth=2) 
plt.plot([1,2,3]) 
plt.show() 

linewidth=0.0 è un buon valore predefinito, ma dovrebbero essere meglio documentato in matplotlib.pyplot.savefig().

+0

Fantastico, sapevo che doveva essere qualcosa di semplice che stavo trascurando. Grazie. – bobl2424

+0

Sì, ha bisogno di essere più chiaramente documentato. Mi ci è voluto un po 'per capirlo, soprattutto dal momento che 'savefig()' di solito sovrascrive le impostazioni del colore da 'Figure()', ma apparentemente non è il parametro 'linewidth'. – fgb

+0

Nota inoltre che puoi usare più colori usando 'Colori()': http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.colors – yPhil

Problemi correlati