Как предотвратить разрушение макета графика matplotlib Axes.imshow?Python

Программы на Python
Anonymous
Как предотвратить разрушение макета графика matplotlib Axes.imshow?

Сообщение Anonymous »

У меня есть следующий код, который должен рисовать изображение в определенной области на красном фоне. Сначала я не рисовал никакого изображения, просто сделал фон красным:

Код: Выделить всё

import matplotlib.pyplot as plt
import numpy as np

papersize = (8.5, 11)

fig = plt.figure(figsize=papersize)
ax = fig.add_axes(rect=(0, 0, 1, 1))
ax.add_patch(plt.Rectangle((0, 0), 1, 1, color="red", zorder=-1))

# this row changes the layount of the image
# ax.imshow(np.asarray([[0, 1], [1, 0]]), cmap="gray", extent=(0.25, 0.75, 0.25, 0.75))

fig.savefig("test.png", dpi=200)
Это красивое красное изображение формата А4.
[img]https://i. sstatic.net/mdl9EqtD.png[/img]

Но когда я раскомментирую строку с помощью imshow, вместо того, чтобы рисовать простое изображение посередине, все адские перерывы теряются, в результате на следующем изображении, которое занимает всю ширину и другой беспорядок:
Изображение

Я понятия не имею, почему это происходит и как это предотвратить. Скажите, пожалуйста, чего мне не хватает.
Цель состоит в том, чтобы иметь возможность рисовать несколько изображений в местах, указанных экстентом, НЕ нарушая при этом макет всего остального.
Я хочу иметь фигуру указанного размера, чтобы оси охватывали всю фигуру и просто иметь холст для рисования, на который можно было бы помещать изображения.

Подробнее здесь: https://stackoverflow.com/questions/784 ... lot-layout

Вернуться в «Python»