Почему изображение вылезает из окна matplotlib при задаче параметров размера окна?

Рейтинг: 0Ответов: 1Опубликовано: 11.03.2023

Пишу 2D-игру на python. Мой код выводит GIF анимацию на экран с помощью Matplotlib. Я хочу настроить положение и размер окна с анимацией, используя plt.get_current_fig_manager().window.wm_geometry('1000x1000+0+0').

Если задать только положение окна, то все отображается корректно, но когда я задаю размер, то изображение не помещается полностью в окно. Причём если увеличить размер окна, то изображение тоже увеличивается и все равно остается смещенным относительно центра вниз и вправо. Как это исправить?

Вот скриншот:

вот как отображается анимация при заданных параметрах размера окна

Вот код:

import time
from PIL import Image
import matplotlib.animation as animation
import matplotlib.pyplot as plt
import keyboard

path = "C:/Users/User/Desktop/GIF/QTEdodge.gif"
im = Image.open(path)

fig, ax = plt.subplots()
fig.patch.set_facecolor('black')
ax.axis('off')
frame_num = 0

def update(i):
    im.seek(i)
    image = ax.imshow(im.convert('RGB'))
    global frame_num
    if keyboard.is_pressed(' '):
        frame_num = i
        ani.pause()
        time.sleep(3)
        plt.close()
    return [image]


ani = animation.FuncAnimation(fig, update, frames=im.n_frames, interval=70, blit=True)
plt.get_current_fig_manager().window.wm_geometry('1000x1000+0+0')
plt.show()
print(frame_num)
if frame_num == 6:
    print('successful dodge')
else:
    print('dodge failed')

Ответы

▲ 0Принят

Проблема исправлена, оказывается нужно было просто настроить параметры самого графика, а не окна с помощью figsize

Скриншот:

скриншот

Код:

    fig, ax = plt.subplots(figsize=(16, 10), facecolor='black')
    plt.get_current_fig_manager().window.wm_geometry('+0+0')