Прежде всего, если вы используете savefig
, имейте в виду, что при сохранении он переопределит цвет фона фигуры, если не указано иное (например fig.savefig('blah.png', transparent=True)
).
Однако, чтобы убрать фон осей и фигуры на экране, вам нужно установить оба параметра ax.patch
и fig.patch
быть невидимым.
Например
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)
(Конечно, вы не можете сказать разницу на белом фоне SO, но все прозрачно ...)
Если вы не хотите показывать ничего, кроме линии, отключите ось, также используя 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)
В этом случае, тем не менее, вы можете заставить оси принимать полную фигуру. Если вы вручную указываете расположение осей, вы можете указать, чтобы оно заняло полную цифру (альтернативно, вы можете использовать subplots_adjust
, но это проще для случая одиночных осей).
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
? (Если это так, он переопределяет все, что вы установили при сохранении рисунка.) Работает ли ручная настройкаfig.patch.set_visible(False)
?