pyqtgraph绘图库

1.1 简介:

pyqtgraph是Python平台上一种功能强大的2D/3D绘图库,相对于matplotlib库,由于内部实现方式上,使用了高速计算的numpy信号处理库以及Qt的GraphicsView框架,

因此,它在大数据量的数字处理和快速显示方面有着巨大的优势,它适合于需要快速绘图更新、视频或实时交互性的操作场合。

另外,它不仅为各种数据提供了快速可交互式的图形显示,同时也提供了用于快速开发应用程序的各种小工具,如属性树、流程图等小部件,在数学、科学和工程领域都有着广泛的应用。

在PyQt的应用程序中集成图绘功能,有很多种方案,比如:

  • OpenGL:一个功能强大的二维三维专业图形绘制工具;

  • Matplotlib:Python中很经典的图形绘制模块;

  • PyQtGraph:基于Qt平台,提供交互的数据显示图形绘制。

各种图形绘制方案都有自己的优点,但是论与PyQt程序的融合度,还是当属PyQtGraph。

pyqtgraph的核心特征是:

  • 基本的2D交互视图中框绘制

  • 线和散点图

  • 数据可平移/缩放鼠标

  • 实时数据的显示和交互的快速绘制

  • 图像显示与互动的查找表和电平控制

  • 显示所有数据类型(int或float;任何比特深度;RGB,RGBA,或亮度)

  • 切片的多维图像任意角度的函数

  • 快速更新的视频显示和实时交互

  • 三维图形系统(需要Python OpenGL绑定)

  • 体积数据的渲染

  • 三维表面和散点图

  • 网格的等值面生成渲染

  • 交互式视口旋转/缩放鼠标

  • 更容易编程的基本的3D场景图

  • 数据选择/标记和感兴趣的控制区

  • 交互标记垂直/水平的地块的位置和区域

  • 从图像中选择任意区域的部件和自动切片数据匹配

1.2 例子

PyQtGraph包含一系列可通过运行来访问的示例:

import pyqtgraph.examples
pyqtgraph.examples.run()

二、鼠标交互

大多数使用pyqtgraph数据可视化的应用程序都会生成可交互缩放,平移和使用鼠标配置的小部件。 本节介绍鼠标与这些小部件的交互。

2.1二维图形

在pyqtgraph中,大多数2D可视化遵循以下鼠标交互:

  •   左键:与场景中的项目交互(选择/移动对象等)。 如果鼠标光标下没有可移动的物体,那么用左边的按钮拖动就会平移场景。
  •   右键拖动:缩放场景。 水平拖动左/右缩放; 向上/向下拖动垂直缩放(尽管某些场景将其x / y缩放比例锁定在一起)。 如果在场景中有x / y轴可以闪动,那么右键拖动轴会影响该轴。
  •   右键单击:在大多数情况下单击右键将根据鼠标光标下的对象显示具有各种选项的上下文菜单。
  •   中间按钮(或滚轮)拖动:按下滚轮拖动鼠标将始终平移场景(在场景中其他对象阻止左侧平移的情况下,此功能非常有用)。
  •   轮旋转:放大和缩小场景。

对于使用右侧或中间按钮拖动很困难的机器(通常是Mac),存在另一种鼠标交互模式。 在此模式下,用鼠标左键拖动可在场景的某个区域上绘制一个框。 按钮释放后,场景将缩放并平移以适合框。 可以在上下文菜单中或通过调用以下方式访问此模式:

pyqtgraph.setConfigOption('leftButtonPan', False)

三、在GUI中集成pyqtgraph图形

在PyQtGraph中,有几种绘制图形的方法:

  • pyqtgraph.plot():创建一个新的绘图窗口来显示数据;

  • PlotWidget.plot():将一组新的数据添加到现有的绘图小部件;

  • PlotItem.plot():将一组新的数据添加到现有的绘图小部件;

  • GraphicsLayout.addPlot():添加一个新的图形到一个图形层中;

根据PyQtGraph这几种绘图方式,我们在PyQt中可以在窗口部件中显示图形,也可以在一个新的窗口的显示图形。

【PyQt5-Qt Designer】在GUI中使用pyqtgraph绘图库的更多相关文章

  1. 第15.9节 PyQt学习入门:使用Qt Designer进行GUI设计的步骤

    在使用Qt Designer进行GUI设计时,一般常规的步骤都是差不多的,主要步骤包括新建显示窗口.在窗口上按照规划的布局放置组件.设置初始化组件的属性.定义信号和槽函数的连接,一般后三步是每增加一个 ...

  2. 使用 PySide2 开发 Maya 插件系列一:QT Designer 设计GUI, pyside-uic 把 .ui 文件转为 .py 文件

    使用 PySide2 开发 Maya 插件系列一:QT Designer 设计GUI, pyside-uic 把 .ui 文件转为 .py 文件 前期准备: 安装 python:https://www ...

  3. PyCharm+PyQt5+Qt Designer配置

    配置前提 因为本机已经配置完毕了,本次使用的是虚拟机中的Win7系统,Win10系统操作步骤完全一样,无任何区别 PyCharm (这个不多说,官网下载安装,我是用的是2019.3版本) Python ...

  4. PyQt5 & Qt Designer使用小结

    开始在知乎写文章的原因,主要还是想整理平时的经验,方便自己以后查看,有机会的话大家也可以交流吧. 11月中旬由于项目需要,和另一名实习生负责使用Python开发一个数据分析的小软件. 虽然才开始接触Q ...

  5. 第三章 、使用Qt Designer进行GUI设计

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.Designer的界面功能介绍 进入Qt Designer以后,打开或新建一个ui文件,Qt D ...

  6. 痞子衡嵌入式:超级好用的可视化PyQt GUI构建工具(Qt Designer)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是PyQt GUI构建工具Qt Designer. 痞子衡开博客至今已有好几年,一直以嵌入式开发相关主题的文章为主线,偶尔穿插一些其他技术 ...

  7. PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)详细教程

    摘要:Qt是常用的用户界面设计工具,而在Python中则使用PyQt这一工具包,它是Python编程语言和Qt库的成功融合.这篇博文通过图文详细介绍在PyCharm中如何完整优雅地安装配置PyQt5的 ...

  8. 自定义的插件如何加载到Qt Designer中(详细)

    要想在Qt Designer中使用自定义控件,必须要使Qt Designer能够知道我们的自定义控件的存在.有两种方法可以把新自定义控件的信息通知给Qt Designer:“升级(promotion) ...

  9. 把自定义控件集成到Qt Designer中

    要想在Qt Designer中使用自定义控件,必须要使Qt Designer能够知道我们的自定义控件的存在.有两种方法可以把新自定义控件的信息通知给Qt Designer:“升级(promotion) ...

随机推荐

  1. Java多线程的同步机制(synchronized)

    一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在 java里边就是拿到某个同步对象的锁(一个对象只有一把锁): 如果这个时候同步对象的锁被其他线程拿走了,他(这个 ...

  2. js调用winform程序(带参数)

    我们会发现,我们点击迅雷下载的时候  网页可以调用应用程序,而且连接会传入迅雷,这个是怎么做到的呢? 原理: 先注册表中添加软件的具体信息,然后通过 href 可以直接调用 1.写入注册表信息,注册, ...

  3. Mysql系列一:SQL入门

    csdn博客搬迁 连接数据库:1.在dos窗口下,进入数据库的安装目录的bin目录下,使用mysqld命令启动数据库服务,或者在计算机的服务里面启动mysql服务2.另外打开一个dos窗口,进入数据库 ...

  4. 错误:OSError: [Errno 1] Operation not permitted: 'lib/python/six-1.4.1-py2.7.egg-info'

    解决办法: $ $ pip install mock --ignore-installed six --user 问题:安装mock时报错: (venv)➜ test git:(master) pip ...

  5. python中,numeric(数字类型)和integer(整型)的区别

    说明: 在今天做int实现的过程中,官方函数的解释是将numeric转换为integer,就突然不明白,两个有啥区别. numeric-数字类型包括: int,float,bool,complex i ...

  6. 断网环境下利用pip安装Python离线安装包

    这几天搞Windows离线断网环境下安装Python包,配置环境,各种坑!做个记录,供以后查询吧. # 生产环境 windows 7 # python 2.7.9 # pip 1.5.2 友情提示:当 ...

  7. Excel VBA 教程

    https://www.w3cschool.cn/excelvba/  Excel VBA 编程教程 https://www.yiibai.com/vba   VBA教程 http://www.acc ...

  8. print 与标准输出

    print会自动添加换行符 其它的,没什么区别.有时候为了使用灵活,才会这么用. 例如你想把print的内容写向一下log文件,你可以这么做 stdout_bk = sys.stdout #备份一下标 ...

  9. 字符集和编码——Unicode(UTF&UCS)深度历险

    计算机网络诞生后,大家慢慢地发现一个问题:一个字节放不下一个字符了!因为需要交流,本地化的文字需要能够被支持. 最初的字符集使用7bit来存储字符,因为那时只需要存下一些英文字母和符号.后来虽然扩展到 ...

  10. day_6.9py网络编程

    .路由器:能够链接不同的网络使他们之间能够通信 mac就是手拉手传输数据用的