pyqtgraph官网

PyQtGraph被大量应用于Qt GUI平台(通过PyQt或PySide),因为它的高性能图形和numpy可用于大量数据处理。 特别注意的是,pyqtgraph使用了Qt的GraphicsView框架,它本身是一个功能强大的图形系统; 我们将最优化和简化的语句应用到这个框架中,以最小的工作量实现数据可视化。

pyqtgraph的核心特征是:
基本的2D交互视图中框绘制
线和散点图
数据可平移/缩放鼠标
实时数据的显示和交互的快速绘制
图像显示与互动的查找表和电平控制
显示所有数据类型(int或float;任何比特深度;RGB,RGBA,或亮度)
切片的多维图像任意角度的函数
快速更新的视频显示和实时交互
三维图形系统(需要Python OpenGL绑定)
体积数据的渲染
三维表面和散点图
网格的等值面生成渲染
交互式视口旋转/缩放鼠标
更容易编程的基本的3D场景图
数据选择/标记和感兴趣的控制区
交互标记垂直/水平的地块的位置和区域
从图像中选择任意区域的部件和自动切片数据匹配
二维图形:

在pyqtgraph中,大多数2D可视化遵循以下鼠标交互:

左键:与场景中的项目交互(选择/移动对象等)。 如果鼠标光标下没有可移动的物体,那么用左边的按钮拖动就会平移场景。
右键拖动:缩放场景。 水平拖动左/右缩放; 向上/向下拖动垂直缩放(尽管某些场景将其x / y缩放比例锁定在一起)。 如果在场景中有x / y轴可以闪动,那么右键拖动轴会影响该轴。
右键单击:在大多数情况下单击右键将根据鼠标光标下的对象显示具有各种选项的上下文菜单。
中间按钮(或滚轮)拖动:按下滚轮拖动鼠标将始终平移场景(在场景中其他对象阻止左侧平移的情况下,此功能非常有用)。
轮旋转:放大和缩小场景。
上下文菜单:

右键单击大多数场景将显示一个上下文菜单,其中包含用于更改场景行为的各种选项。 这个菜单中的一些选项是:

数据范围变化时启用/禁用自动缩放
将多个视图的轴链接在一起
启用禁用每个轴的鼠标交互
显式设置可见范围值
三维图形:

3D可视化使用以下鼠标交互:

左键拖动:围绕中心点旋转场景
中间按钮拖动:通过移动x-y平面内的中央“查看”点来平移场景
中间按钮拖动+ CTRL:通过沿z轴移动中央“查看”点来平移场景
滚轮旋转:放大/缩小
车轮+ CTRL:改变视场角
键盘控制:

箭头键围绕中心点旋转,就像拖动鼠标左键一样

安装pyqtgraph
$ pip install pyqtgraph

安装openGL
$ pip install pyOpenGL -i https://pypi.douban.com/simple

示例代码

"""
This example demonstrates many of the 2D plotting capabilities
in pyqtgraph. All of the plots may be panned/scaled by dragging with
the left/right mouse buttons. Right click on any plot to show a context menu.
"""import numpy as npimport pyqtgraph as pg
from pyqtgraph.Qt import QtCoreapp = pg.mkQApp("Plotting Example")
#mw = QtWidgets.QMainWindow()
#mw.resize(800,800)win = pg.GraphicsLayoutWidget(show=True, title="Basic plotting examples")
win.resize(1000,600)
win.setWindowTitle('pyqtgraph example: Plotting')# Enable antialiasing for prettier plots
pg.setConfigOptions(antialias=True)p1 = win.addPlot(title="Basic array plotting", y=np.random.normal(size=100))p2 = win.addPlot(title="Multiple curves")
p2.plot(np.random.normal(size=100), pen=(255,0,0), name="Red curve")
p2.plot(np.random.normal(size=110)+5, pen=(0,255,0), name="Green curve")
p2.plot(np.random.normal(size=120)+10, pen=(0,0,255), name="Blue curve")p3 = win.addPlot(title="Drawing with points")
p3.plot(np.random.normal(size=100), pen=(200,200,200), symbolBrush=(255,0,0), symbolPen='w')win.nextRow()p4 = win.addPlot(title="Parametric, grid enabled")
x = np.cos(np.linspace(0, 2*np.pi, 1000))
y = np.sin(np.linspace(0, 4*np.pi, 1000))
p4.plot(x, y)
p4.showGrid(x=True, y=True)p5 = win.addPlot(title="Scatter plot, axis labels, log scale")
x = np.random.normal(size=1000) * 1e-5
y = x*1000 + 0.005 * np.random.normal(size=1000)
y -= y.min()-1.0
mask = x > 1e-15
x = x[mask]
y = y[mask]
p5.plot(x, y, pen=None, symbol='t', symbolPen=None, symbolSize=10, symbolBrush=(100, 100, 255, 50))
p5.setLabel('left', "Y Axis", units='A')
p5.setLabel('bottom', "Y Axis", units='s')
p5.setLogMode(x=True, y=False)p6 = win.addPlot(title="Updating plot")
curve = p6.plot(pen='y')
data = np.random.normal(size=(10,1000))
ptr = 0
def update():global curve, data, ptr, p6curve.setData(data[ptr%10])if ptr == 0:p6.enableAutoRange('xy', False)  ## stop auto-scaling after the first data set is plottedptr += 1
timer = QtCore.QTimer()
timer.timeout.connect(update)
timer.start(50)win.nextRow()p7 = win.addPlot(title="Filled plot, axis disabled")
y = np.sin(np.linspace(0, 10, 1000)) + np.random.normal(size=1000, scale=0.1)
p7.plot(y, fillLevel=-0.3, brush=(50,50,200,100))
p7.showAxis('bottom', False)x2 = np.linspace(-100, 100, 1000)
data2 = np.sin(x2) / x2
p8 = win.addPlot(title="Region Selection")
p8.plot(data2, pen=(255,255,255,200))
lr = pg.LinearRegionItem([400,700])
lr.setZValue(-10)
p8.addItem(lr)p9 = win.addPlot(title="Zoom on selected region")
p9.plot(data2)
def updatePlot():p9.setXRange(*lr.getRegion(), padding=0)
def updateRegion():lr.setRegion(p9.getViewBox().viewRange()[0])
lr.sigRegionChanged.connect(updatePlot)
p9.sigXRangeChanged.connect(updateRegion)
updatePlot()if __name__ == '__main__':pg.exec()

运行效果

PyQtGraph示例模块:
python -m pyqtgraph.examples

python pyqtgraph绘图库-官方示例相关推荐

  1. python pyqtgraph绘图库-绘制图形

    绘制波形 设置plot的pen属性的几种方法,通过画笔可以设置绘制图像的颜色.线宽等参数: pen=(255,0,0) pen=pg.mkPen(color='b', width=5) pen=pg. ...

  2. Python中使用pyqtgraph绘图库实时绘制计算机CPU使用率等数据曲线

    一.项目需求 获取约30台电脑的CPU使用率.CPU温度.系统盘容量.系统盘使用率.总硬盘使用率.内存使用率.GPU使用率等数据 将1中数据集中用图表的形式集中展示出来 二.设计思路 采用C/S架构( ...

  3. python gui 三维 pyqt5_【PyQt5-Qt Designer】在GUI中使用pyqtgraph绘图库

    pyqtgraph绘图库 1.1 简介: pyqtgraph是Python平台上一种功能强大的2D/3D绘图库,相对于matplotlib库,由于内部实现方式上,使用了高速计算的numpy信号处理库以 ...

  4. python安装绘图库matplotlib_Python基础教程:Python 2D绘图库 Matplotlib 简介和安装

    原标题:Python基础教程:Python 2D绘图库 Matplotlib 简介和安装 来自:Linux迷https://www.linuxmi.com/python-2d-matplotlib.h ...

  5. python 三维绘图库_Python第三方库matplotlib(2D绘图库)入门与进阶

    Matplotlib 一 简介: Matplotlib是一个Python 2D绘图库,它可以在各种平台上以各种硬拷贝格式和交互式环境生成出具有出版品质的图形. Matplotlib可用于Python脚 ...

  6. python 3d绘图库_python – 用于科学3d绘图的Mayavi的替代品

    在没有令人满意的第一个答案和无法解释的downvote之后编辑: 我需要绘制一个在3D网格中构造的标量字段,如下所示: import numpy as np from mayavi import ml ...

  7. python 第三方绘图库_D3py首页、文档和下载 - 基于 D3 的 Python 绘图库 - OSCHINA - 中文开源技术交流社区...

    D3py 是一个基于 D3 的 Python 绘图库,可以像 D3 那样画出可交互的漂亮图形. D3py 的目的是把来自命令行或者脚本的数据画到浏览器窗口,d3py 通过构建两个优秀的包来实现这一点. ...

  8. python绘图库seaborn_Matplotlib Toolkits:python高级绘图库seaborn

    Seaborn介绍 seaborn (Not distributed with matplotlib) seaborn is a highlevel interface for drawing sta ...

  9. python安装绘图库matplotlib_python绘图库Matplotlib的安装

    导读热词 本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地 进行 ...

最新文章

  1. python多进程参考代码
  2. mysql初体验学习笔记_MySQL数据库初体验
  3. Leetcode 187.重复的DNA序列
  4. 京东8.27算法笔试-滚雪球(动态规划python)
  5. 别傻了,90%的开发者都没有做好它
  6. zhilizhili-ui 2016始动 开始做个样例站吧 (一)
  7. 从0开始配置Win环境下VScode (VScode For C/C++)
  8. FME SERVER介绍
  9. MySQL---主从复制
  10. 数据交互什么意思_学习编程怎么样才可以不枯燥?什么是前端语言?
  11. How To Search and Restore files from Site Collection Recycle Bin
  12. 达内java晨讲案例_达内java飞机大战(完成版)
  13. mcgs 云服务器,MCGS软件系统的组态环境和运行环境
  14. (一)微信小程序云开发之登录界面设计
  15. php小写转大写,php怎么实现英文小写转大写
  16. java vml_VML书签
  17. 【专访】黄健宏:为什么真正的聪明人喜欢用笨方法?
  18. javafx 教程_用JavaFX编写图块引擎
  19. USR-TCP232-E2串口转以太网模块的使用方法
  20. KVC原理分析及应用

热门文章

  1. 程序人生 | (7) “新一五计划”(博客导航)
  2. 微软小娜 服务器连不上网,Win10系统微软小娜一时无法连接网络解决方法
  3. html可以编写爬虫吗,JavaScript能写爬虫吗?
  4. 记一次团队内部开展如何学习的交流会
  5. 后街男孩AND西城男孩
  6. 解决dubbo invoke 提示 Command:invoke disabled
  7. 仿手机QQ的请求状态进度条
  8. 融云 x DSPORT:拿下游戏社交「实时社区」第一滴血
  9. proteus与keil的安装方法合集
  10. 推荐一款可批量查询处理图片的「资源整理工厂」插件