pyqtgraph数据可视化2:使用PyQtGraph绘制图形的6种方法(转载)
对于一个图形的绘制,在PyQtGraph中有很多中方法可以实现。比如可以直接使用PyQtGraph的plot()方法绘制,或者是创建一个网格窗口,再其中添加绘制图形等。下面我们就一一了解一下PyQtGraph的绘制图形方法。
首先利用numpy模块创建两个随机数组,用来作为图形绘制的数据:
import pyqtgraph as pg
import numpy as np
x = np.random.random(50)
a = np.random.random(8)
最简单直接的plot()
在引入pyqtgraph模块之后,直接使用其plot()方法就可以快速的绘制一个图形,代码如下所示。
def pg_plot():
app = pg.QtGui.QApplication([])
pg.plot(x,title='州的先生zmister.com PyQtGraph教程 - plot()方法')
app.exec()
我们在pyqtgraph模块的plot()方法中传入了数组x,并设置了其title参数,运行这个函数,得到的图形如下所示:
使用plot()方法在窗口中绘制多个线条
如果我们有多个数组,需要将所有的数组数据绘制在图形中,同样可以直接使用plot()方法,但是却不是像上一个例子中一样使用两次plot()方法,因为这样会生成两个图形窗口,代码如下所示:
def pg_plot():
app = pg.QtGui.QApplication([])
pg.plot(x,title='州的先生zmister.com PyQtGraph教程 - plot()方法 x数组')
pg.plot(a, title='州的先生zmister.com PyQtGraph教程 - plot()方法 a数组')
app.exec()
运行上面的函数,我们将会得到两个图形窗口,结果如下图所示:
如果需要使用plot()方法在同一个图形中绘制多个数据,需要先将pyqtgraph的plot()方法实例化,然后再使用实例化后的plot的plot()方法进行图形绘制,代码如下所示:
def pg_plot_add():
plot = pg.plot(title='州的先生zmister.com PyQtGraph教程 - plot()方法绘制两条线')
plot.plot(x)
plot.plot(a,pen='r')
pg.QtGui.QGuiApplication.exec()
运行上述函数,最后得到的图形窗口如下图所示:
通过GraphicsWindow方法绘制图形
通过pyqtgraph模块的GraphicsWindow方法,我们可以创建一个空的图形窗口,然后使用其addplot()方法添加图形。代码如下所示:
def pg_windows_addplot():
win = pg.GraphicsWindow(title="州的先生zmister.com PyQtGraph教程")
plot = win.addPlot(title='窗口绘制图形')
plot.plot(x)
pg.QtGui.QApplication.exec()
运行上述函数,得到的会是一个有图形窗口名和图形名称的图形,结果如下图所示:
在GraphicsWindow方法中添加子图
如同在GraphicsWindow中创建一个图形,继续使用addplot()方法,可以在图形窗口中继续添加一个子图,代码如下所示:
def pg_windows_addplot():
win = pg.GraphicsWindow(title="州的先生zmister.com PyQtGraph教程")
plot = win.addPlot(title='窗口绘制图形')
plot.plot(x)
plot2 = win.addPlot(title='绘制子图')
plot2.plot(a)
pg.QtGui.QApplication.exec()
运行上述函数,会得到一个包含两个子图的图形窗口,结果如下所示:
通过GraphicsLayout图形层方法绘制图形
通过GraphicsLayout图形层方法绘制图形的过程相较于前述的方法,稍显复杂。
首先通过实例化pyqtgraph的GraphicsView()方法,创建一个图形视图;
然后通过实例化pyqtgraph的GraphicsLayout()方法,创建一个图形层;
再设置图形视图的中心层为刚刚创建的图形层,并设置显示图形视图。
最后使用图形层的addplot()方法添加一个图形,再将使用图形的plot()方法将图形绘制出来。
代码如下所示:
def pg_graphicsLayout_plot():
app = pg.QtGui.QApplication([])
view = pg.GraphicsView()
l = pg.GraphicsLayout()
view.setCentralItem(l)
view.show()
p1 = l.addPlot(title='州的先生zmister.com PyQtGraph教程 - 通过图形层绘制图形')
p1.plot(x)
app.exec()
运行上述函数,得到的图形窗口如下所示:
使用PlotWidget绘制图形
使用pyqtgraph的PlotWidget方法绘制图形与直接使用plot()方法绘制图形有些许类似,代码如下所示:
def pg_plotwidget_plot():
app = pg.QtGui.QApplication([])
pw = pg.PlotWidget(title='州的先生zmister.com PyQtGraph教程 - 通过图形部件绘制图形')
pw.plot(x)
pw.show()
app.exec()
运行上述程序,得到的图形窗口如下所示:
通过PlotItem方法绘制图形
对PlotItem方法的使用与图形层GraphicsLayout方法的使用基本一致,代码如下所示:
def pg_plotitem_plot():
app = pg.QtGui.QApplication([])
xx = pg.GraphicsView()
plot = pg.PlotItem(title='州的先生zmister.com PyQtGraph教程 - 通过图形部件绘制图形')
plot.plot(x)
xx.setCentralWidget(plot)
xx.show()
app.exec()
运行上述函数,得到的图形窗口如下所示:
最后
上面介绍了6种在pyqtgraph中绘制图形的方法,不知道各位学会了没有:)
文章版权所有:州的先生博客,转载必须保留出处及原文链接
# coding:utf-8
import pyqtgraph as pg
import numpy as np
x = np.random.random(50)
a = np.random.random(8)
def pg_plot():
app = pg.QtGui.QApplication([])
pg.plot(x,title='州的先生zmister.com PyQtGraph教程 - plot()方法')
app.exec()
def pg_plot1():
app = pg.QtGui.QApplication([])
pg.plot(x,title='州的先生zmister.com PyQtGraph教程 - plot()方法 x数组')
pg.plot(a, title='州的先生zmister.com PyQtGraph教程 - plot()方法 a数组')
app.exec()
def pg_plot_add():
plot = pg.plot(title='州的先生zmister.com PyQtGraph教程 - plot()方法绘制两条线')
plot.plot(x)
plot.plot(a,pen='r')
pg.QtGui.QGuiApplication.exec()
def pg_windows_addplot():
win = pg.GraphicsWindow(title="州的先生zmister.com PyQtGraph教程")
plot = win.addPlot(title='窗口绘制图形')
plot.plot(x)
pg.QtGui.QApplication.exec()
def pg_windows_addplot1():
win = pg.GraphicsWindow(title="州的先生zmister.com PyQtGraph教程")
plot = win.addPlot(title='窗口绘制图形')
plot.plot(x)
plot2 = win.addPlot(title='绘制子图')
plot2.plot(a)
pg.QtGui.QApplication.exec()
def pg_graphicsLayout_plot():
app = pg.QtGui.QApplication([])
view = pg.GraphicsView()
l = pg.GraphicsLayout()
view.setCentralItem(l)
view.show()
p1 = l.addPlot(title='州的先生zmister.com PyQtGraph教程 - 通过图形层绘制图形')
p1.plot(x)
app.exec()
def pg_plotwidget_plot():
app = pg.QtGui.QApplication([])
pw = pg.PlotWidget(title='州的先生zmister.com PyQtGraph教程 - 通过图形部件绘制图形')
pw.plot(x)
pw.show()
app.exec()
def pg_plotitem_plot():
app = pg.QtGui.QApplication([])
xx = pg.GraphicsView()
plot = pg.PlotItem(title='州的先生zmister.com PyQtGraph教程 - 通过图形部件绘制图形')
plot.plot(x)
xx.setCentralWidget(plot)
xx.show()
app.exec_()
if __name__ == '__main__':
pg_plotwidget_plot()
原文地址:https://www.cnblogs.com/zeliangzhang/p/15246135.html
- Apache ActiveMQ 远程代码执行漏洞 (CVE-2016-3088)分析
- mysql5.5与mysq 5.6中禁用innodb引擎的方法
- 缓慢的update语句性能分析(r6笔记第61天)
- 一个dg警告发现的硬件问题 (r6笔记第60天)
- mysql几种存储引擎介绍
- Java基础-21(02)总结字符流,IO流编码问题,实用案例必做一遍
- DeDeCMS v5.7 密码修改漏洞分析
- Java基础-20(01)总结,递归,IO流
- 一个Oracle bug的手工修复(r6笔记第59天)
- 由drop datafile导致的oracle bug(r6笔记第56天)
- Java中static关键字的作用
- Java基础-20(02)总结,递归,IO流
- Hive四种数据导入方式
- 34c3 部分Web Writeup
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- R平方/相关性取决于预测变量的方差
- stata具有异方差误差的区间回归
- R语言用于线性回归的稳健方差估计
- 用SAS进行泊松,零膨胀泊松和有限混合Poisson模型分析
- 东芝开发板驱动OLED模块显示LOGO图片
- sas文本挖掘案例:如何使用SAS计算Word Mover的距离
- R语言ggplot2 对Facebook用户数据可视化分析
- 如何实现一个圆弧倒计时进度条
- R语言Kaggle泰坦尼克号性别阶级模型数据分析案例
- 以图搜图系统概述
- GitHub Pages 配置 letsencrypt 开启HTTPS
- R语言中ARMA,ARIMA(Box-Jenkins),SARIMA和ARIMAX模型用于预测时间序列数据
- 以图搜图系统工程实践
- R语言线性判别分析(LDA),二次判别分析(QDA)和正则判别分析(RDA)
- 用R语言实现神经网络预测股票实例