PyQt5将matplotlib绘制到QLabel上显示

有些PyQt任务中我们需要将利用 matplotlib 绘制的图绘制到桌面应用中,一般这种情况,接受图的显示需要使用 QLabel,下文将介绍如何实现这个效果。

效果展示:

该应用很简单,就是点击按钮,然后将利用 matplotlib 绘制的折线图显示到桌面上

在这里插入图片描述
实现步骤如下:

  1. 创建一个画布 fig
  2. 在画布上创建一个 axes 对象,用于绘图
  3. 使用 ax 绘制需要的图形
  4. 创建 FigureCanvas 对象,同时将画布 fig 传入
  5. 获取 pixmap 对象
  6. 调用 QLabelsetPixmap() 设置图片背景

以下是一个示例代码,演示如何将 Matplotlib 绘制的图形绘制到 QLabel 上:

def draw(self):
    # 创建一个Matplotlib Figure对象
    fig = plt.figure()
    # 在Figure对象中创建一个Axes对象
    ax = fig.add_subplot(111)
    # 绘制一条曲线
    x = [1, 2, 3, 4, 5]
    y = [1, 4, 9, 16, 25]
    ax.plot(x, y)
    # 创建一个FigureCanvas对象,并将Figure对象传入
    canvas = FigureCanvas(fig)
    # 获取pixmap对象
    pixmap = QPixmap(canvas.grab().toImage())
    # 设置背景
    self.label.setPixmap(pixmap)

def signal(self):
    # 按钮连接绘图槽函数
    self.pushButton.clicked.connect(self.draw)

注意导包问题,FigureCanvas 是按照下面方式,不要导错了

from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas

猜你喜欢

转载自blog.csdn.net/m0_47256162/article/details/129927004