Почему исходные размеры фигуры в этом скрипте matplotlib неверны?Python

Программы на Python
Ответить
Anonymous
 Почему исходные размеры фигуры в этом скрипте matplotlib неверны?

Сообщение Anonymous »

Этот скрипт Python 3.13 с Matplotlib 3.10.3 работает на дисплее 1200x1600:

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

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()
изначально выводит неверные размеры [6.4 4.8] 0.0 1.0, но после щелчка в любом месте фигуры
Изображение

выводит физически правильные значения [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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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