İlk olarak, kullanıyorsanız savefig
, aksi belirtilmedikçe, kaydederken şeklin arka plan rengini geçersiz kılacağını unutmayın (örn. fig.savefig('blah.png', transparent=True)
).
Ancak ekranda eksenleri ve şeklin arka planını kaldırmak için, ikisini birden ayarlamanız ax.patch
ve fig.patch
görünmez olmanız gerekir.
Örneğin
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)
(Tabii ki, SO'nun beyaz arka planındaki farkı söyleyemezsiniz, ancak her şey şeffaftır ...)
Çizgi dışında bir şey göstermek istemiyorsanız, ekseni aşağıdakileri kullanarak da kapatın 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)
Bu durumda, eksenlerin tam rakamı almasını isteyebilirsiniz. Eksenlerin konumunu manuel olarak belirlerseniz, tam rakamı almasını söyleyebilirsiniz (alternatif olarak kullanabilirsiniz subplots_adjust
, ancak bu tek eksenler için daha basittir).
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
? (Öyleyse, şekil kaydedilirken ayarladığınız her şeyi geçersiz kılar.) Manuel ayarfig.patch.set_visible(False)
çalışıyor mu?