qq_39833636 2023-03-18 17:03 采纳率: 0%
浏览 95

关于matplotlib图像在 FigureCanvasQTAgg窗口中显示不全的问题!

matplotlib图像在 FigureCanvasQTAgg窗口中显示不全的问题
初次显示

img

分辨率调大重新绘制后就会超出FigureCanvasQTAgg边框

img

分辨率调小重新绘制就只在左上角

img

但是只要一拖改变窗口大小,图片就会自适应大小

img

所以有没有办法设置重绘的时候就直接自适应窗口显示?

  • 写回答

1条回答 默认 最新

  • MarkHan_ 2023-03-18 17:54
    关注

    该回答引用GPTᴼᴾᴱᴺᴬᴵ
    您可以在绘制完图像后,调用tight_layout()方法来自动调整子图参数,使得图像适应 FigureCanvasQTAgg 窗口大小。示例代码如下:

    import matplotlib.pyplot as plt
    from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
    from PyQt5.QtWidgets import QMainWindow, QApplication, QVBoxLayout, QWidget
    
    class MyMainWindow(QMainWindow):
        def __init__(self):
            super().__init__()
            self.initUI()
    
        def initUI(self):
            self.setWindowTitle("Matplotlib Example")
            self.setGeometry(100, 100, 800, 600)
    
            # 创建一个QWidget作为主窗口的中心控件
            central_widget = QWidget(self)
            self.setCentralWidget(central_widget)
    
            # 创建一个绘图区域,并添加到QWidget中
            fig, ax = plt.subplots()
            ax.plot([1, 2, 3], [2, 4, 3])
            canvas = FigureCanvas(fig)
            layout = QVBoxLayout(central_widget)
            layout.addWidget(canvas)
    
            # 自适应窗口大小显示
            fig.tight_layout()
    
    if __name__ == '__main__':
        app = QApplication([])
        win = MyMainWindow()
        win.show()
        app.exec_()
    
    

    这样绘制出的图像将会自动适应窗口大小,并且当窗口大小改变时,图像也会自动调整大小。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月18日

悬赏问题

  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp
  • ¥15 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 关于#python#的问题,请各位专家解答!区间型正向化
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 VB.NET如何绘制倾斜的椭圆