pyqt5与matplotlib的完美结合实例


Posted in Python onJune 21, 2019

具体用到了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中用函数作为返回值和实现闭包的教程
Apr 27 Python
Python正则表达式完全指南
May 25 Python
Python字符串处理实现单词反转
Jun 14 Python
python cx_Oracle的基础使用方法(连接和增删改查)
Nov 19 Python
Python使用SQLite和Excel操作进行数据分析
Jan 20 Python
django在接受post请求时显示403forbidden实例解析
Jan 25 Python
在python中使用requests 模拟浏览器发送请求数据的方法
Dec 26 Python
django admin.py 外键,反向查询的实例
Jul 26 Python
python数据预处理方式 :数据降维
Feb 24 Python
Python实现密钥密码(加解密)实例详解
Apr 26 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
Apr 29 Python
如何在windows下安装配置python工具Ulipad
Oct 27 Python
django框架防止XSS注入的方法分析
Jun 21 #Python
pyqt5中QThread在使用时出现重复emit的实例
Jun 21 #Python
python发送多人邮件没有展示收件人问题的解决方法
Jun 21 #Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
Jun 21 #Python
django框架使用orm实现批量更新数据的方法
Jun 21 #Python
python字典改变value值方法总结
Jun 21 #Python
python如何以表格形式打印输出的方法示例
Jun 21 #Python
You might like
桌面中心(二)数据库写入
2006/10/09 PHP
PHP编程函数安全篇
2013/01/08 PHP
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
2018/08/02 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
2019/05/20 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
IE与FireFox的兼容性问题分析
2007/04/22 Javascript
如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙
2011/03/03 Javascript
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
使用jQuery清空file文件域的解决方案
2013/04/12 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
教你用jquery实现iframe自适应高度
2014/06/11 Javascript
jsp 自动编译机制详细介绍
2016/12/01 Javascript
Javascript中for循环语句的几种写法总结对比
2017/01/23 Javascript
用director.js实现前端路由使用实例
2017/01/27 Javascript
JS中静态页面实现微信分享功能
2017/02/06 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
Vue.js实战之利用vue-router实现跳转页面
2017/04/01 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
基于JS脚本语言的基础语法详解
2017/07/22 Javascript
Vue组件Draggable实现拖拽功能
2018/12/01 Javascript
jQuery ajax仿Google自动提示SearchSuggess功能示例
2019/03/28 jQuery
详解微信小程序回到顶部的两种方式
2019/05/09 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
DataFrame 将某列数据转为数组的方法
2018/04/13 Python
matlab灰度图像调整及imadjust函数的用法详解
2020/02/27 Python
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
美国廉价机票预订网站:Cheapfaremart
2018/04/28 全球购物
给客户的道歉信
2014/01/13 职场文书
通信生自我鉴定
2014/01/18 职场文书
共产党员公开承诺书
2014/03/25 职场文书
讲文明懂礼貌演讲稿
2014/09/11 职场文书
交通事故协议书范本
2016/03/19 职场文书
关于Python中进度条的六个实用技巧分享
2022/04/05 Python