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()
2、鼠标交互
大多数使用pyqtgraph数据可视化的应用程序都会生成可交互缩放,平移和使用鼠标配置的小部件。 本节介绍鼠标与这些小部件的交互。框架
2.1二维图形
在pyqtgraph中,大多数2D可视化遵循如下鼠标交互:函数
- 左键:与场景中的项目交互(选择/移动对象等)。 若是鼠标光标下没有可移动的物体,那么用左边的按钮拖动就会平移场景。
- 右键拖动:缩放场景。 水平拖动左/右缩放; 向上/向下拖动垂直缩放(尽管某些场景将其x / y缩放比例锁定在一块儿)。 若是在场景中有x / y轴能够闪动,那么右键拖动轴会影响该轴。
- 右键单击:在大多数状况下单击右键将根据鼠标光标下的对象显示具备各类选项的上下文菜单。
- 中间按钮(或滚轮)拖动:按下滚轮拖动鼠标将始终平移场景(在场景中其余对象阻止左侧平移的状况下,此功能很是有用)。
- 轮旋转:放大和缩小场景。
对于使用右侧或中间按钮拖动很困难的机器(一般是Mac),存在另外一种鼠标交互模式。 在此模式下,用鼠标左键拖动可在场景的某个区域上绘制一个框。 按钮释放后,场景将缩放并平移以适合框。 能够在上下文菜单中或经过调用如下方式访问此模式:工具
pyqtgraph.setConfigOption('leftButtonPan', False)
3、在GUI中集成pyqtgraph图形
在PyQtGraph中,有几种绘制图形的方法:大数据
-
pyqtgraph.plot():建立一个新的绘图窗口来显示数据;
-
PlotWidget.plot():将一组新的数据添加到现有的绘图小部件;
-
PlotItem.plot():将一组新的数据添加到现有的绘图小部件;
-
GraphicsLayout.addPlot():添加一个新的图形到一个图形层中;
根据PyQtGraph这几种绘图方式,咱们在PyQt中能够在窗口部件中显示图形,也能够在一个新的窗口的显示图形。spa