Изображение, показанное на втором графике, изображено меньше, чем первое изображение;причина в том, что полное изображение первой фигуры сжимается во вновь созданные меньшие оси - это было бы очевидно, если не выключать оси.
Чтобы убедиться, что вторая фигура показывает только само изображение,Вы можете отрегулировать поля так, чтобы между краем фигуры и осями не было промежутка, используя subplots_adjust
.
fig = plt.figure(frameon=False)
fig.subplots_adjust(0,0,1,1)
ax = plt.gca()
plt.axis("off")
plt.imshow(X)
. Таким образом, вы получите желаемый график.
Обратите внимание, чтомассив не совсем одинаковый из-за сглаживания, применяемого при сохранении файла png.Вы можете узнать через
X = np.array(fig.canvas.renderer._renderer)/255.
Y = plt.imread("rec1.png")
print(np.all(X==Y))
## This prints False
Иными словами, если вы хотите иметь тот же массив numpy, что и сохраненный, вы должны обязательно использовать самого сохраненного изображения.
plt.savefig("rec1.png")
X = plt.imread("rec1.png")
# use X from here onwards