Вместо получения осей из метода add_subplot
вы можете создать объект осей с явными границами.Поэтому вместо
self.axes = self.figure.add_subplot(111)
используйте
self.axes = self.figure.add_axes([0,0,1,1])
Четыре числа - это левый край, нижний край, ширина и высота осей в долях ширины и высоты фигуры.[0,0,1,1]
расширит изображение, чтобы оно соответствовало всей фигуре.Конечно, есть еще проблемы с соотношением сторон.Если вы хотите сохранить соотношение сторон изображения, оно не всегда будет заполнять все пространство виджета (в зависимости от формы виджета).Если изменения соотношения сторон в порядке, вы можете вызвать im_show следующим образом
self.axes.imshow(self.data, interpolation="quadric", aspect='auto')
, чтобы изображение заполняло виджет независимо от его формы.
Без автоматического соотношения сторон это приводит кв: