Код: Выделить всё
import matplotlib.pyplot as plt, numpy as np
fig, ax = plt.subplots()
plt.tight_layout(pad=0.01)
fig.canvas.manager.full_screen_toggle()
img = np.random.randint(5, size=(4, 3))
while True:
ax.imshow(img)
print(fig.get_size_inches(), *ax.get_xlim())
plt.waitforbuttonpress()

выводит физически правильные значения [12. 15,58] -0,5 2,5. Как получить правильные размеры перед первым щелчком мыши, то есть при первом вызове print(fig.get_size_inches(), *ax.get_xlim())? Моя цель — получить количество пикселей дисплея на единицу квадрата img, поэтому, если есть альтернатива ax.get_position().width*fig.get_size_inches()[0]*fig.dpi/(xMax-xMin), которая не страдает от этой проблемы, я хотел бы знать.
Некрасивое решение — вставить эти строки перед циклом:
Код: Выделить всё
ax.imshow(img)
plt.pause(0.1)
Подробнее здесь: https://stackoverflow.com/questions/798 ... lib-script
Полная версия