Trước hết, nếu bạn đang sử dụng savefig
, hãy lưu ý rằng nó sẽ ghi đè màu nền của hình khi lưu trừ khi bạn chỉ định khác (ví dụ fig.savefig('blah.png', transparent=True)
).
Tuy nhiên, để xóa nền của trục và hình trên màn hình, bạn sẽ cần đặt cả hai ax.patch
và fig.patch
ở chế độ ẩn.
Ví dụ
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)

(Tất nhiên, bạn không thể nói sự khác biệt trên nền trắng của SO, nhưng mọi thứ đều trong suốt ...)
Nếu bạn không muốn hiển thị bất cứ thứ gì ngoài dòng, hãy tắt trục bằng cách sử dụng 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)

Tuy nhiên, trong trường hợp đó, bạn có thể muốn làm cho các trục chiếm hết hình. Nếu bạn chỉ định thủ công vị trí của các trục, bạn có thể yêu cầu nó chiếm toàn bộ hình (thay vào đó, bạn có thể sử dụng subplots_adjust
, nhưng điều này đơn giản hơn đối với trường hợp của một trục).
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
? (Nếu vậy, nó sẽ ghi đè bất cứ thứ gì bạn đặt khi lưu hình.) Cài đặt thủ công cófig.patch.set_visible(False)
hoạt động không?