Wenn Sie verwenden savefig
, beachten Sie zunächst, dass die Hintergrundfarbe der Figur beim Speichern überschrieben wird, sofern Sie nichts anderes angeben (z fig.savefig('blah.png', transparent=True)
. B. ).
Um jedoch den Hintergrund der Achsen und der Figur auf dem Bildschirm zu entfernen, müssen Sie beide festlegen ax.patch
und fig.patch
unsichtbar sein.
Z.B
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)
(Natürlich kann man auf dem weißen Hintergrund von SO keinen Unterschied erkennen, aber alles ist transparent ...)
Wenn Sie nichts anderes als die Linie anzeigen möchten, schalten Sie die Achse ebenfalls aus, indem Sie 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)
In diesem Fall möchten Sie möglicherweise, dass die Achsen die vollständige Zahl einnehmen. Wenn Sie die Position der Achsen manuell angeben, können Sie festlegen, dass die vollständige Abbildung übernommen werden soll (alternativ können Sie diese verwenden subplots_adjust
, dies ist jedoch für den Fall einer einzelnen Achse einfacher).
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
? (Wenn ja, wird alles überschrieben, was Sie beim Speichern der Abbildung festgelegt haben.) Funktioniert die manuelle Einstellungfig.patch.set_visible(False)
?