百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Python数据可视化之高速绘图神器PyQtGraph库,强烈建议收藏

itomcoil 2025-02-14 23:37 4 浏览

为什么使用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库的高速绘制性能,小伙伴们,快试下吧。


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

相关推荐

MySql安装与使用

介绍mysql是目前最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem:关系数据库管理系统)应用软件...

使用AI来搭建一个用户系统,步骤应该是怎样的呢?

我给AI的第一个问题是这样的:创建一个java21+springboot3.4+mysql21的一个用户系统,需要使用JWT,支持多语言,使用swagger,这个用户系统都应该包含哪...

Mysql 8.4数据库安装、新建用户和数据库、表单

1、下载MySQL数据库yuminstall-ywgetperlnet-toolslibtirpc#安装wget和perl、net-tools、libtirpcwgethtt...

介绍如何在 MySQL 中创建新用户并授予权限?

MySQL是一个开源的关系型数据库管理系统,常用于存储和管理大量的结构化数据。在使用MySQL进行数据管理时,为了安全和方便管理,通常需要创建新用户并授予相应的权限。本文将介绍如何在MySQL...

Mysql创建用户和权限管理

MySQL是一个多用户的数据库,最高权限管理者是root用户,它拥有着最高的权限操作。包括select、update、delete、update、grant等操作。如果有其他用户想使用MySQL,那么...

Mysql:创建用户详解

1、创建并授权用户--创建可从任何主机连接的用户CREATEUSER'myuser'@'%'IDENTIFIEDBY'mypassword'...

Python 实现【字符匹配】

defis_match(s,pattern):m,n=len(s),len(pattern)dp=[[False]*(n+1)for_inrange...

Python自动化:openpyxl工作簿、工作表相关操作

新建工作簿、工作表importopenpyxl#创建空白工作簿,会自动生成一个工作表:Sheetwb=openpyxl.Workbook()#新建工作表#create_sheet...

python每日一练之三数排序

概述今天主要分享一个三树排序的实例,大家可以自己测试玩一下~需求输入三个整数x,y,z,请把这三个数由小到大输出。方法一:如果是要练练手就随便找个排序算法实现一下#usr/bin/python#...

Python输出语句print()

Python中的输出语句主要通过内置函数print()实现,它可以灵活输出文本、变量、表达式结果等内容到控制台或其他文件。以下是详细介绍及示例:一、print()基本语法print(*object...

Python设置excel表格格式,这3个属性6个模块,要表格好看

前言:通过前面两篇文章,我们用Python处理excel数据得到了结果并保存了文件。打开文件会发现,文件里表格是没有设置格式的,还需手动调整行高列宽等样式,很麻烦。其实,通过Python库模块,能轻松...

python入门-day5-循环语句

以下是为“Day5:循环语句”设计的详细学习任务计划。这个任务旨在帮助初学者掌握Python中的循环语句(for和while),并通过实践理解它们的应用场景。Day5:循环语句学习目标...

Python基础编程必备!涵盖常见语法与操作的代码示例合集

以下是一份Python基础代码示例合集,涵盖了常见的语法和操作,适合初学者快速掌握基本编程概念:1.基础语法python#打印输出print("Hello,World!")#变...

Python循环语句实用教程

一、循环基础1.while循环基本语法:while条件表达式:循环体代码while循环流程图:应用示例:#简单计数器count=0whilecount<5:...

在 Python 中如何向一个已排序的数组(列表) 中插入一个数呢

在Python中如何向一个已排序的数组(列表)中插入一个数呢?方法有很多种,关键在于原来数组是什么样的排序,用到啥排序方法效率高,就用哪种。我们来练习其中的几种插入方法,另外也掌握下遍历数组的...