Проблема в том, что при изменении размера или в окне много места matplotlib обрезает график, как показано на изображении ниже.
Я попробовал set_box_aspect, плотно_layout, set_x/y/z/margin , fig.subplots_adjust(left=0, right=1, low=0, top=1) и изменил размер figsize и dpi, но ничего не помогло.
Я думаю, что это как-то связано с матрицей проекции и плоскостью отсечения/усеченной пирамидой.
Как я могу использовать все пространство окна?

Вот простой пример. Окно matplotlib не заполняет все окно.
Вы также можете удалить set_x/y/zlim3d, удерживая нажатой правую кнопку мыши и перетаскивая ее вниз. Вы можете играть, чтобы увеличить масштаб.
import sys
import numpy as np
from matplotlib.backends.backend_qtagg import FigureCanvas
from matplotlib.figure import Figure
from mpl_toolkits.mplot3d import axes3d
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (QApplication, QHBoxLayout,QMainWindow,QVBoxLayout,QWidget)
class ApplicationWindow(QMainWindow):
def __init__(self, parent=None):
QMainWindow.__init__(self, parent)
# Central widget
self._main = QWidget()
self.setCentralWidget(self._main)
# Figure
self.fig = Figure(dpi=100)
self.canvas = FigureCanvas(self.fig)
# Main layout
layout = QHBoxLayout(self._main)
layout.addWidget(self.canvas, 88)
# Initial setup
self.fig.set_canvas(self.canvas)
self._ax = self.canvas.figure.add_subplot(projection="3d")
self.plot_wire()
self._ax.view_init(30, 30)
self._ax.set_xlim3d((-21.256550924241655, 20.956550924241274))
self._ax.set_ylim3d((-21.256550924241655, 20.956550924241274))
self._ax.set_zlim3d((-45.123979156988995, 56.69315358068454))
self.fig.canvas.mpl_connect('button_press_event',self.onPress)
def onPress(self,event):
print('pressed')
def plot_wire(self):
# Data
self.X, self.Y, self.Z = axes3d.get_test_data(0.03)
self._ax.plot_wireframe(self.X, self.Y, self.Z, rstride=10, cstride=10, cmap="viridis")
self.canvas.draw()
if __name__ == "__main__":
app = QApplication(sys.argv)
w = ApplicationWindow()
w.show()
app.exec()
Подробнее здесь: https://stackoverflow.com/questions/798 ... e-plotting
Мобильная версия