Я новичок в Python и Matplotlib, я хотел бы просто применить цветовую карту к изображению и записать полученное изображение без использования осей, меток, заголовков или чего-либо, что обычно автоматически добавляется matplotlib. Вот что я сделал:
def make_image(inputname,outputname):
data = mpimg.imread(inputname)[:,:,0]
fig = plt.imshow(data)
fig.set_cmap('hot')
fig.axes.get_xaxis().set_visible(False)
fig.axes.get_yaxis().set_visible(False)
plt.savefig(outputname)
Он успешно удаляет ось фигуры, но сохраненная фигура представляет собой белый отступ и рамку вокруг фактического изображения. Как их убрать (хотя бы белую обивку)? Спасибо
Ответ с лишним голосом больше не работает. Чтобы заставить его работать, вам нужно вручную добавить ось, установленную в [0, 0, 1, 1], или удалить патч под рисунком.
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(5, 5), dpi=20)
ax = plt.Axes(fig, [0., 0., 1., 1.])
fig.add_axes(ax)
plt.imshow([[0, 1], [0.5, 0]], interpolation="nearest")
plt.axis('off') # same as: ax.set_axis_off()
plt.savefig("test.png")
Кроме того, вы можете просто удалить патч. Вам не нужно добавлять подзаговор, чтобы удалить отступы. Это упрощено из ответа Влады ниже
fig = plt.figure(figsize=(5, 5))
fig.patch.set_visible(False) # turn off the patch
plt.imshow([[0, 1], [0.5, 0]], interpolation="nearest")
plt.axis('off')
plt.savefig("test.png", cmap='hot')
Это проверено с версией 3.0.3
на 2019/06/19. Изображение см. Ниже:
Намного проще использовать pyplot.imsave
. Подробнее, см. Ответ Луатора ниже
Я нашел, что это все документируется...
Мой code†¦. "bcK" 512x512 изображение
plt.figure()
plt.imshow(bck)
plt.axis("off") # turns off axes
plt.axis("tight") # gets rid of white border
plt.axis("image") # square up the image instead of filling the "figure" space
plt.show()