En primer lugar, si está utilizando savefig
, tenga en cuenta que anulará el color de fondo de la figura al guardar a menos que especifique lo contrario (por ejemplo fig.savefig('blah.png', transparent=True)
).
Sin embargo, para eliminar el fondo de los ejes y la figura en la pantalla, deberá configurar ambos ax.patch
y fig.patch
ser invisible.
P.ej
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(range(10))
for item in [fig, ax]:
item.patch.set_visible(False)
with open('test.png', 'w') as outfile:
fig.canvas.print_png(outfile)
(Por supuesto, no se puede ver la diferencia en el fondo blanco de SO, pero todo es transparente ...)
Si no desea mostrar nada más que la línea, apague también el eje usando ax.axis('off')
:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(range(10))
fig.patch.set_visible(False)
ax.axis('off')
with open('test.png', 'w') as outfile:
fig.canvas.print_png(outfile)
En ese caso, sin embargo, es posible que desee hacer que los ejes ocupen la figura completa. Si especifica manualmente la ubicación de los ejes, puede indicarle que tome la cifra completa (alternativamente, puede usar subplots_adjust
, pero esto es más simple para el caso de un solo eje).
import matplotlib.pyplot as plt
fig = plt.figure(frameon=False)
ax = fig.add_axes([0, 0, 1, 1])
ax.axis('off')
ax.plot(range(10))
with open('test.png', 'w') as outfile:
fig.canvas.print_png(outfile)
savefig
? (Si es así, anula lo que configuró al guardar la figura). ¿Funciona la configuración manualfig.patch.set_visible(False)
?