Primeiro, se você estiver usando savefig
, saiba que ela substituirá a cor de fundo da figura ao salvar, a menos que você especifique o contrário (por exemplo fig.savefig('blah.png', transparent=True)
).
No entanto, para remover o plano de fundo dos eixos e da figura na tela, você precisará definir os dois ax.patch
e fig.patch
ficar invisível.
Por exemplo
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)
(Claro, você não pode dizer a diferença no fundo branco da SO, mas tudo é transparente ...)
Se você não quiser mostrar nada além da linha, desligue o eixo também 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)
Nesse caso, porém, convém fazer com que os eixos ocupem a figura inteira. Se você especificar manualmente a localização dos eixos, poderá solicitar que ele assuma a figura completa (como alternativa, você pode usar subplots_adjust
, mas isso é mais simples no caso de um único eixo).
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
? (Se sim, substitui o que você definiu ao salvar a figura.) A configuração manualfig.patch.set_visible(False)
funciona?