2011-01-03 19 views

risposta

78

Se si desidera che l'intero sfondo sia per la figura che per gli assi sia trasparente, è sufficiente specificare transparent=True quando si salva la figura con fig.savefig.

es .:

import matplotlib.pyplot as plt 
fig = plt.figure() 
plt.plot(range(10)) 
fig.savefig('temp.png', transparent=True) 

Se si desidera un maggiore controllo a grana fine, è sufficiente impostare il facecolor e/o valori alfa per la figura e assi di patch di sfondo. (Per fare una patch completamente trasparente, possiamo o impostare l'alfa a 0, oppure impostare il facecolor a 'none' (come stringa, non l'oggetto None)!)

es:

import matplotlib.pyplot as plt 

fig = plt.figure() 

fig.patch.set_facecolor('blue') 
fig.patch.set_alpha(0.7) 

ax = fig.add_subplot(111) 

ax.plot(range(10)) 

ax.patch.set_facecolor('red') 
ax.patch.set_alpha(0.5) 

# If we don't specify the edgecolor and facecolor for the figure when 
# saving with savefig, it will override the value we set earlier! 
fig.savefig('temp.png', facecolor=fig.get_facecolor(), edgecolor='none') 

plt.show() 

alt text

+3

L'impostazione di 'facecolor' su' 'none'' non ha funzionato per me; impostare 'alpha' su' 0.0'. –

+1

Non funziona per 'basemap' –

Problemi correlati