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. 聊聊模板方法模式,装饰器模式以及AOP

    在软件系统设计的时候,我们需要把一个大的系统按照业务功能进行拆分,做到高内聚.低耦合. 但是呢,拆分之后会产生一些通用性的东西,比如日志,安全,事务,性能统计等,这些非功能性需求,横跨多个模块.最lo ...

  2. mysql 第二高薪水

    编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | ...

  3. jar各个版本号的意义

    jar版本号的意义: Alpha: Alpha是内部测试版,一般不向外部发布,会有很多Bug.除非你也是测试人员,否则不建议使用.是希腊字母的第一位,表示最初级的版本,alpha 就是α,beta 就 ...

  4. checkmysql.sh

    #!/bin/sh # add by lxr MYSQL_SOCK="/tmp/mysql.sock" MYSQL_PWD="qq139547" ARGS=1 ...

  5. 腾讯云Badjs镜像使用入门

    版权声明:本文由王少飞 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/498929001487125840 来源:腾云阁  ...

  6. PHP跳出循环的方法及continue、break、exit的区别

    PHP中的循环结构大致有for循环,while循环,do{} while 循环以及foreach循环几种,不管哪种循环中,在PHP中跳出循环大致有这么几种方式: <?php $i = 1; wh ...

  7. IOS多线程处理

    http://www.jianshu.com/p/0b0d9b1f1f19 首页专题下载手机应用 显示模式登录     注册登录 添加关注 作者 伯恩的遗产2015.07.29 00:37* 写了35 ...

  8. [转] - spark推荐 - 从50多分钟到3分钟的优化

    原文地址 从50多分钟到3分钟的优化 某推荐系统需要基于Spark用ALS算法对近一天的数据进行实时训练, 然后进行推荐. 输入的数据有114G, 但训练时间加上预测的时间需要50多分钟, 而业务的要 ...

  9. :eq

    匹配一个给定索引值的元素?只要在html页面每个元素都有索引值,相同的元素按html位置顺序从0开始往下排.给定索引值:给定一个html某个区域的元素的索引值,也是从0开始 不给区域就是从html从d ...

  10. Kernel parameters for Db2 database server installation (Linux and UNIX)

    Db2 11.1 For root installations, the database manager uses a formula to automatically adjust kernel ...