网络编程
位置:首页>> 网络编程>> Python编程>> pyqt5与matplotlib的完美结合实例

pyqt5与matplotlib的完美结合实例

作者:coding上下求索  发布时间:2022-01-09 12:23:59 

标签:pyqt5,matplotlib

具体用到了matplotlib.backends.backend_qt5agg.FigureCanvasQTAgg

直接上代码(这里给出的只是一个简单的框架,告诉你怎么去写):


# -*- coding: utf-8 -*-
'''
TODO:LQD
'''
import sys
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FC
from PyQt5.QtWidgets import QApplication, QPushButton, QMainWindow, QVBoxLayout, QWidget

class QtDraw(QMainWindow):
 flag_btn_start = True

def __init__(self):
   super(QtDraw, self).__init__()
   self.init_ui()

def init_ui(self):
   self.resize(800, 600)
   self.setWindowTitle('PyQt5 Draw')

# TODO:这里是结合的关键
   self.fig = plt.Figure()
   self.canvas = FC(self.fig)
   self.btn_start = QPushButton(self)
   self.btn_start.setText('draw')
   self.btn_start.clicked.connect(self.slot_btn_start)

widget = QWidget()
   layout = QVBoxLayout()
   layout.addWidget(self.canvas)
   layout.addWidget(self.btn_start)
   widget.setLayout(layout)
   self.setCentralWidget(widget)

def slot_btn_start(self):
   try:
     ax = self.fig.add_subplot(111)
     x = np.linspace(0, 100, 100)
     y = np.random.random(100)
     ax.cla() # TODO:删除原图,让画布上只有新的一次的图
     ax.plot(x, y)
     self.canvas.draw() # TODO:这里开始绘制
   except Exception as e:
     print(e)

def ui_main():
 app = QApplication(sys.argv)
 w = QtDraw()
 w.show()
 sys.exit(app.exec_())

if __name__ == '__main__':
 ui_main()

来源:https://blog.csdn.net/shangxiaqiusuo1/article/details/90044849

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com