pyqt5与matplotlib的完美结合实例

yipeiwu_com6年前Python基础

具体用到了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()

以上这篇pyqt5与matplotlib的完美结合实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python实现多线程端口扫描

一个简易的TCP端口扫描器,使用python3实现。 需求:扫描目标网站开放哪些端口号,将所有开放的端口号输出。 分析:使用socket连接,如果连接成功,认为端口开放,如果连接失败,认...

Django框架中方法的访问和查找

在 Django 模板中遍历复杂数据结构的关键是句点字符 (.)。 最好是用几个例子来说明一下。 比如,假设你要向模板传递一个 Python 字典。 要通过字典键访问该字典的值,可使用一...

Python 功能和特点(新手必学)

Python是一门简单而文字简约的语言。阅读好的Python程序感觉就像阅读英语,尽管是非常严格的英语。Python的这种伪代码特性是其最大强项之一,它可让你专注于解决问题的办法而不是语...

python 数据清洗之数据合并、转换、过滤、排序

python 数据清洗之数据合并、转换、过滤、排序

前面我们用pandas做了一些基本的操作,接下来进一步了解数据的操作, 数据清洗一直是数据分析中极为重要的一个环节。 数据合并 在pandas中可以通过merge对数据进行合并操作。...

全面了解Python的getattr(),setattr(),delattr(),hasattr()

1. getattr()函数是Python自省的核心函数,具体使用大体如下: class A: def __init__(self): self.name = 'zhangji...