pyqt5使用matplotlib绘图

说明

在pyqt5中使用matplotlib步骤:
1、引入plt
2、引入FigureCanvas
3、生成figure
4、取得FigureCanvas
5、将FigureCanvas加入容器中
6、调用plt函数来绘图

代码

import sys
# 1、引入plt
import matplotlib.pyplot as plt
import numpy as np
# 2、引入FigureCanvas
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from PyQt5.QtWidgets import QApplication, QVBoxLayout, QHBoxLayout, QWidget, QPushButton


class MyApp(QWidget):
    def __init__(self):
        super().__init__()
        self.resize(1400, 800)
        self.setWindowTitle('PyQt5 绘制matplot图像')

        # 创建一个按钮,点击时更新图像
        self.button1 = QPushButton(self)
        self.button1.setText('画图')
        self.button1.clicked.connect(self.draw)

        # layout1
        self.layout1 = QVBoxLayout()
        self.layout1.addWidget(self.button1)

        # 3、生成figure
        self.fig = plt.figure(figsize=(6, 4), dpi=300)

        # layout2
        self.layout2 = QHBoxLayout()

        self.layout = QVBoxLayout(self)  # 至少主布局要在UI界面上,最好每个子布局也在,因此继承自self
        self.layout.addLayout(self.layout1)
        self.layout.addLayout(self.layout2)

        # 4、FigureCanvas
        self.canvas = FigureCanvas(self.fig)
        # 5、加入容器
        self.layout2.addWidget(self.canvas)

    def draw(self):
        # 6、绘图
        plt.clf()
        x = np.linspace(0, 4 * np.pi, 1000)
        y = np.sin(x)
        plt.plot(x, y)
        self.canvas.draw()


if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MyApp()
    window.show()
    sys.exit(app.exec_())

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5是一个用于创建GUI应用程序的Python框架,而Matplotlib是一个用于绘制数据可视化图形的Python库。结合使用PyQt5Matplotlib,我们可以在GUI应用程序中嵌入Matplotlib图形,实现静态和动态图形的显示和交互。 要在PyQt5使用Matplotlib,首先需要安装Matplotlib库,可以使用pip命令进行安装。然后,我们可以使用Matplotlib提供的FigureCanvasQTAgg类创建一个绘图窗口,并将其嵌入到PyQt5的窗口中。接下来,使用Matplotlib的Axes对象进行绘图操作,例如绘制折线图、散点图等。最后,使用PyQt5的布局管理器将绘图窗口添加到主窗口中,以实现图形显示。 下面是一个简单的示例代码,展示了如何使用PyQt5Matplotlib创建一个GUI应用程序并显示一个简单的折线图: <<引用:主要介绍了利用PyQt5 Matplotlib 绘制静态/动态图的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。>> ```python import sys import random import matplotlib.pyplot as plt from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("PyQt5 Matplotlib Example") self.figure = plt.figure() self.canvas = FigureCanvas(self.figure) self.layout = QVBoxLayout() self.layout.addWidget(self.canvas) self.central_widget = QWidget() self.central_widget.setLayout(self.layout) self.setCentralWidget(self.central_widget) self.plot_data() def plot_data(self): x = range(10) y = [random.randint(1, 10) for _ in x] ax = self.figure.add_subplot() ax.plot(x, y) ax.set_xlabel("X") ax.set_ylabel("Y") ax.set_title("Plot Example") self.canvas.draw() if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值