python画图程序库_Python数据可视化之高速绘图神器PyQtGraph库,强烈建议收藏

01为什么使用PyQtGraph库

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

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

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

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

cb8065380cd79123bf8ccd398f14ed84b2b78031.jpeg?token=5aceccb688c0ecc94e032382e26ead4f

02什么是PyQtGraph库

先上个2D绘制效果图:

aa9b67942aed658e6ed9b80f66315302.gif

再来个3D绘制效果图:

62d36a3fd93fac3a072b6ee7b2ec4f21.gif

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

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

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

03PyQtGraph库的主要特点

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

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

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

在绘图中可交互标记垂直/水平位置和区域在图像中可选择任意区域并自动切片数据以匹配的小部件3、科学/工程应用程序有用的小部件和模块库

参数树、颜色渐变编辑器及带SI单位显示和对数步进的SpinBox小部件等类似于Qt的Dock系统,但更加灵活和可编程,允许用户重新排列图形用户界面组件怎么样,这里面有没有你感兴趣的呢?心动了么?

04PyQtGraph库的安装

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

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

05PyQtGraph库的使用

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

在交互式shell如ipython里显示数据在应用程序中直接弹出弹出窗口显示数据以小部件窗口的方式嵌入到在PyQt应用程序中显示数据下面是一个超简单直接弹出窗口的例子,代码如下:

472309f790529822643f5f81f6eacfcd0a46d40e.jpeg?token=fe46d19385873da509f54b1c225fac8c

运行结果如下图所示:

3b87e950352ac65c3741311dd8d2061793138a3a.jpeg?token=979ec9cee813bba62477018d5cbcda67

是不是比较简单啊。

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

import pyqtgraph.examples

pyqtgraph.examples.run()

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

e7cd7b899e510fb390fc32fdfa137c93d0430c9d.jpeg?token=90ed11542f7e55cd2d78790c36afadbc

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

37d12f2eb9389b508cad3e38a71551dbe7116e35.jpeg?token=94b78540284b545607dca3b0124de519

本文由编码那些事原创,请关注+转发+收藏+点赞,带你一起长知识!

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值