Графики Matplotlib: удаление осей, легенд и пробелов

Я новичок в 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)

Он успешно удаляет ось фигуры, но сохраненная фигура представляет собой белый отступ и рамку вокруг фактического изображения. Как их убрать (хотя бы белую обивку)? Спасибо

238
задан sunmat 15 February 2012 в 03:18
поделиться

2 ответа

Ответ с лишним голосом больше не работает. Чтобы заставить его работать, вам нужно вручную добавить ось, установленную в [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. Изображение см. Ниже:

enter image description here

Намного проще использовать pyplot.imsave. Подробнее, см. Ответ Луатора ниже

.
0
ответ дан 23 November 2019 в 03:22
поделиться

Я нашел, что это все документируется...

https://matplotlib.org/3.1.1/api / _ as_gen/matplotlib.axes. Оси axis.html#matplotlib.axes. Axes.axis

Мой 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()
1
ответ дан 23 November 2019 в 03:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: