2011-01-03 35 views

Respuesta

78

Si solo desea que todo el fondo para la figura y los ejes sea transparente, puede simplemente especificar transparent=True al guardar la figura con fig.savefig.

ej .:

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

Si desea más control de grano fino, sólo tiene que ajustar los valores alfa facecolor y/o para la figura y ejes parche de fondo. (Para hacer un parche completamente transparente, podemos o bien establecer el alfa a 0, o establecer el facecolor a 'none' (como una cadena, no el objeto None)!)

por ejemplo:

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

Configurar el 'facecolor' para' 'none'' no funcionó para mí; establecer 'alpha' a' 0.0' sí. –

+1

No funciona para 'basemap' –

Cuestiones relacionadas