質問: Application() app.show() sys.exit(QApp.exec_()) ```
回答: 以下の stackoverflow の質問と回答が参考になるかもしれません。 https://stackoverflow.com/questions/44345962/how-to-adjust-the-size-of-a-plot-in-pyqt 上記 stackoverflow の質問に対する回答を参考にいろいろと試してみました。 例えば次のような `initFigure` の実装はいかがでしょうか。 キーポイントとなるのは「`self.Figure.tight_layout()`を追加する」です。これにより pyplot.Figure のサイズが が表示領域(おそらく FigureCanvas)に対してできるだけ広がるように調整されるようです。 また、`imshow` のキーワード引数 `aspect="auto"` を指定することで、表示する画像のアスペクト比をキャンバスサイズの比に合わせて自動で調整するようになります。 ただし、キャンバスサイズと画像のサイズのアスペクト比が異なると、画像が伸長したりするので注意が必要です。 (この点についてはおそらく何かしらの解決策がありますが、ご質問の内容とは別枠の内容と考えられるので今回は保留とします。) ``` # Figureの初期化 def initFigure(self): # Figureを作成 self.Figure = plt.figure() # FigureをFigureCanvasに追加 self.FigureCanvas = FigureCanvas(self.Figure) FigureCanvas.updateGeometry(self) # LayoutにFigureCanvasを追加 self.FigureLayout.addWidget(self.FigureCanvas) self.axis = self.Figure.add_subplot(1, 1, 1) self.axis_image = self.axis.imshow(self.image, cmap='gray', aspect="auto") # <- オプションでココを変更 self.axis.set_axis_off() # <- ココは問題解決と関係ないが、axis のメソッドを利用して plt.axis("off") と同等の操作が可能。 self.Figure.tight_layout() # <- この行を追加 ```