上虞第一城市门户欢迎您!   手机上虞广播网

为什么使用PyQtGraph库

来源:上虞门户网  2020-05-23 12:15

为什么使用PyQtGraph库

我们知道,在Python中,已经有了很多可供选择的数据可视化库。

比如最经典、使用人数最多的matplotlib库,其有着十多年的历史积累,可生成高质量出版级别的图形,它几乎已经成了事实上的Python绘图标准库。再比如在matplotlib库基础上衍生的其它绘图库,如seaborn、ggplot、plotnine等等,甚至还有其它的一些库如底层使用JavaScript 实现的开源可视化库pyecharts等,这些库都比较容易使用,几行代码就可画出来漂亮的图形。

但是这些绘图库也存在着不足,即在图形绘制速度上有所欠缺,特别是对于科研算法方面的数据可视化,很多情况需要实时绘图,要求能够提供尽可能快的绘制刷新速度,那这些库显的有些力不从心了。

而我们下面要介绍的绘图库PyQtGraph库,则在绘图速度方面表现突出,在不失绘图美观、功能强大的前提下,绘图速度方面作了极大的优化,特别适合于实时数据采集的动态图形绘制场合。

什么是PyQtGraph库

先上个2D绘制效果图:

再来个3D绘制效果图:

PyQtGraph是一个纯python的图形和GUI库,构建于PyQt4/PySide和numpy之上,它主要用于数学/科学/工程应用方面。虽然该库完全用python编写,但其内部使用了Qt的GraphicsView框架及numpy计算库,因此其在图形绘制及数据处理速度方面有着极其优异的表现。同时,PyQtGraph是在MIT开源许可下发布的。

该库可运行于Python2和Python3上,其两个主要特色为:

  • 为数据(绘图,视频等)提供了快速可交互式的图形(2D和3D)显示。
  • 提供了帮助快速开发应用程序的小工具/部件,如属性树、颜色选择框按钮等。

其官网地址是http://www.pyqtgraph.org/,大家有兴趣可以看下。

PyQtGraph库的主要特点

这儿仅列举部分功能,详细的可直接查看官方文档。

1、可交互式的2D/3D绘图功能

  • 折线图、散点图、三维曲面
  • 基于等值面生成的网格绘制
  • 丰富的属性设置
  • 支持显示大多数数据类型(int或float;任意位深度;RGB、RGBA或亮度)
  • 在任意角度对多维图像进行切片的功能(非常适合MRI数据)
  • 交互式鼠标平移/旋转/缩放
  • 实时数据显示与交互的快速绘图

2、数据选择/标记和关注区域控制

  • 在绘图中可交互标记垂直/水平位置和区域
  • 在图像中可选择任意区域并自动切片数据以匹配的小部件

3、科学/工程应用程序有用的小部件和模块库

  • 参数树、颜色渐变编辑器及带SI单位显示和对数步进的SpinBox小部件等
  • 类似于Qt的Dock系统,但更加灵活和可编程,允许用户重新排列图形用户界面组件

怎么样,这里面有没有你感兴趣的呢?心动了么?

PyQtGraph库的安装

以Windows系统为例,对于Python2或Python3,以下两种方法都可以安装:

  • pip命令行安装:pip install pyqtgraph
  • 官网下载exe程序安装:32位和64位的分别为pyqtgraph-0.10.0.win32.exe,pyqtgraph-0.10.0.win-amd64.exe文件

PyQtGraph库的使用

PyQtGraph库提供了如下几种使用方式:

  • 在交互式shell如ipython里显示数据
  • 在应用程序中直接弹出弹出窗口显示数据
  • 以小部件窗口的方式嵌入到在PyQt应用程序中显示数据

下面是一个超简单直接弹出窗口的例子,代码如下:

运行结果如下图所示:

是不是比较简单啊。

另外,这个库比较好的地方是自带了很多很多的例子,如果你想看更多更复杂的效果,就从它的例子开始学习吧,打开例子的方法只需要下面两行代码:

import pyqtgraph.examples

pyqtgraph.examples.run()

例子界面如下图所示,每一个都可以单独运行:

GraphicsView框架及numpy计算库的有机结合,造就了PyQtGraph库的高速绘制性能,小伙伴们,快试下吧。

Copyright 2012-2013 上虞第一城市门户网站 版权所有

郑重声明:网站资源摘自互联网,如有侵权,麻烦通知删除,谢谢!