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 相关文章推荐
linux系统使用python获取内存使用信息脚本分享
Jan 15 Python
Python编程中time模块的一些关键用法解析
Jan 19 Python
详解Python核心编程中的浅拷贝与深拷贝
Jan 07 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
Mar 02 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
Jun 14 Python
python实现录音小程序
Oct 26 Python
浅谈python实现Google翻译PDF,解决换行的问题
Nov 28 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
Jun 18 Python
Kali Linux安装ipython2 和 ipython3的方法
Jul 11 Python
JupyterNotebook 输出窗口的显示效果调整方法
Apr 13 Python
python实现单机五子棋
Aug 28 Python
python opencv旋转图片的使用方法
Jun 04 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
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
一个简单的自动发送邮件系统(三)
2006/10/09 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
thinkphp实现分页显示功能
2016/12/03 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
PHP如何搭建百度Ueditor富文本编辑器
2018/09/21 PHP
小结Node.js中非阻塞IO和事件循环
2014/09/18 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
2017/02/03 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
2017/02/13 Javascript
input输入框内容实时监测(附代码)
2017/08/15 Javascript
微信小程序实现下拉刷新和轮播图效果
2017/11/21 Javascript
浅析vue中常见循环遍历指令的使用 v-for
2018/04/18 Javascript
vue实现新闻展示页的步骤详解
2019/04/11 Javascript
vue3.0搭配.net core实现文件上传组件
2020/10/29 Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
2020/12/03 Javascript
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
python读取文件名并改名字的实例
2019/01/07 Python
Python爬虫运用正则表达式的方法和优缺点
2019/08/25 Python
python中删除某个元素的方法解析
2019/11/05 Python
Django认证系统user对象实现过程解析
2020/03/02 Python
用python 绘制茎叶图和复合饼图
2021/02/26 Python
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
旷课检讨书2000字
2014/01/14 职场文书
七年级生物教学反思
2014/01/30 职场文书
个人廉洁自律承诺书
2014/03/27 职场文书
消防安全标语
2014/06/07 职场文书
单位委托书
2014/10/15 职场文书
毕业生对母校寄语
2015/02/26 职场文书
2015年银行柜员工作总结报告
2015/04/01 职场文书
何玥事迹观后感
2015/06/16 职场文书
mybatis使用oracle进行添加数据的方法
2021/04/27 Oracle
python引入其他文件夹下的py文件具体方法
2021/05/23 Python