首页 > 编程 > Python > 正文

pyqt5与matplotlib的完美结合实例

2019-11-25 12:41:52
字体:
来源:转载
供稿:网友

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

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

# -*- coding: utf-8 -*-'''TODO:LQD'''import sysimport numpy as npimport matplotlib.pyplot as pltfrom matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FCfrom 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()

以上这篇pyqt5与matplotlib的完美结合实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表