【pyqtgraph绘图】在pyqtgraph中绘图
解读pyqtgraph官方API-在pyqtgraph中绘图
参考:
http://www.pyqtgraph.org/documentation/plotting.html
在pyqtgraph中绘图
在pyqtgraph中绘制数据有以下几种基本方法:
所有这些都将接受控制绘图数据如何解释和显示的相同基本参数:
- x - 可选的X数据; 如果未指定,则将自动生成一系列整数。
- y - Y数据。
- pen - 绘制绘图线时使用的笔,当 None 时线不可用 。
- symbol - 描述用于每个点的符号形状的字符串。可选地,这也可以是每个点具有不同符号的字符串序列。
- symbolPen - 绘制符号轮廓时使用的笔(或笔的序列)。
- symbolBrush - 填充符号时使用的画笔(或画笔序列)。
- fillLevel - 将绘图曲线下的区域填充到此Y值。
- brush - 在曲线下填充时使用的画笔。
有关这些参数的演示,请参阅“绘图” 示例。
所有上述函数还返回创建的对象的句柄,允许进一步修改绘图和数据。
绘图类的组织
在显示绘图数据时有几个类被激活。这些类中的大多数都是自动实例化的,但了解它们的组织方式和相互关联是很有用的。PyQtGraph主要基于Qt的GraphicsView框架 - 如果您还不熟悉它,那么值得一读(但不是必需的)。最重要的是:
1)Qt GUI由QWidgets组成,
2)一个名为QGraphicsView的特殊小部件用于显示复杂的图形,
3)QGraphicsItems定义在QGraphicsView中显示的对象。
- 数据类(QGraphicsItem的所有子类)
-
PlotCurveItem
- 显示给定x,y数据的绘图线ScatterPlotItem
- 显示给定x,y数据的点PlotDataItem
- 组合PlotCurveItem和ScatterPlotItem。上面讨论的绘图函数创建了这种类型的对象。
- 容器类(QGraphicsItem的子类;包含其他QGraphicsItem对象,必须在GraphicsView中查看)
-
PlotItem
- 包含用于显示数据的ViewBox以及用于显示轴和标题的AxisItems和标签。这是一个QGraphicsItem子类,因此只能在GraphicsView中使用GraphicsLayout
- QGraphicsItem子类,显示项目网格。这用于一起显示多个PlotItem。ViewBox
- 用于显示数据的QGraphicsItem子类。用户可以使用鼠标缩放/平移ViewBox的内容。通常,所有PlotData / PlotCurve / ScatterPlotItem都在ViewBox中显示。AxisItem
- 显示轴值,刻度和标签。最常用于PlotItem。
- 容器类(QWidget的子类;可以嵌入在PyQt GUI中)
-
PlotWidget
- GraphicsView的子类,显示单个PlotItem。PlotItem提供的大多数方法也可以通过PlotWidget获得。GraphicsLayoutWidget
- QWidget子类显示单个GraphicsLayoutItem。GraphicsLayoutItem提供的大多数方法也可以通过GraphicsLayoutWidget获得。
例子效果:
完整代码:
from PyQt5.QtWidgets import QPushButton,QWidget,QApplication,QGridLayout,QListWidget,QLineEdit
import pyqtgraph as pg
import sys
import numpy as np class Example(QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
self.linePlot()
self.scatterPlot()
self.three_curves() def initUI(self):
self.setGeometry(400,400,800,620)
self.setWindowTitle("pyqtgraph快速入门") ## 创建一些小部件放在顶级窗口中
btn = QPushButton('press me')
text = QLineEdit('enter text')
listw = QListWidget()
listw.addItems(["aa", "bb", "cc"]) self.gridLayout = QGridLayout(self)
## 将部件添加到布局中的适当位置
self.gridLayout.addWidget(btn, 0, 0)
self.gridLayout.addWidget(text, 1, 0)
self.gridLayout.addWidget(listw, 2, 0) self.setLayout(self.gridLayout) def linePlot(self):
plt1 = pg.PlotWidget()
plt1.plot([i for i in range(10)], [i * i for i in range(10)])
self.gridLayout.addWidget(plt1, 0, 1, 1, 1) def scatterPlot(self):
plt2 = pg.PlotWidget()
x = np.random.normal(size=1000)
y = np.random.normal(size=1000)
plt2.plot(x, y, pen=None, symbol="o")
self.gridLayout.addWidget(plt2, 1, 1, 1, 1) def three_curves(self):
plt3 = pg.PlotWidget(title="Three plot curves")
x = np.arange(1000)
y = np.random.normal(size=(3, 1000))
for i in range(3):
plt3.plot(x, y[i], pen=(i, 3)) ## setting pen=(i,3) 自动创建3个不同颜色的笔
self.gridLayout.addWidget(plt3, 2, 1, 1, 1) if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
【微语】坚持下去,并非我们真的坚强,而是我们别无选择 ---丘吉尔
【pyqtgraph绘图】在pyqtgraph中绘图的更多相关文章
- iOS之在内存中绘图
与直接在UIView控件上绘图不同,在内存中绘图时,需要开发者自己准备绘图环境,Quartz 2D提供了一个非常便捷的函数:UIGraphicsBeginImageContext(CGSize siz ...
- matplotlib中绘图配色
Python中绘图配色(参照博文: Python-画图(散点图scatter.保存savefig)及颜色大全) # 可以直接使用配色编码 c=["#A52A2A" if tag = ...
- QT_8_Qt中的事件处理_定时器事件_定时器类_事件分发器_事件过滤器_绘图事件_高级绘图事件_绘图设备_QFile 文件读写_QFileInfo文件信息
Qt中的事件处理 1.1. 捕获QLabel中是鼠标事件 1.2. enterevent 鼠标进入 1.3. leaveevent 鼠标离开 1.4. 鼠标按下MyLabel::mousePressE ...
- CAD在网页中绘图,并为新绘的对象写扩展数据和读取扩展数据
在网页中绘图,并为新绘的对象写扩展数据和读取扩展数据.下面帮助的完整例子,在控件安装目录的 Sample\Ie\iedemo.htm 中. 主要用到函数说明: _DMxDrawX::InsertBlo ...
- Matlab绘图系列之高级绘图
Matlab绘图系列之高级绘图 原帖地址: http://blog.163.com/enjoy_world/blog/static/115033832007865616218/ Matlab绘图 20 ...
- WebGL是一种3D绘图标准,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起
WebGL是一种3D绘图标准,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTM ...
- Qt中绘图坐标QPainter,Viewport与Window的关系
在Qt中常常要自己重载一些paintEvent函数,这个时候往往忽略了两个很关键的API,那就是setViewport和setWindow. Viewport,顾名思义,反应的是物理坐标,就是你实际想 ...
- [C#技术参考]在PictureBox 中绘图防止闪烁的办法
开篇之前说点别的,马上年终了,好希望年终奖大大的,但是好像这次项目的展示很重要,所以这几天绷得比较近,但是真的没有感觉烦,就是害怕来不及.所以抓紧了.下面直接正题.说一下用到的东西,都是Google搜 ...
- CDialogEx::OnPaint()的问题,或者为什么在对话框程序的OnPaint中绘图无效的问题
这是一个基于对话框的程序,对话框上有按钮,还有几个CStatic用来绘图,之前都是好好的,今天改成Unicode版本后,编译正常,运行时CStatic中的图像怎么也不显示,有时候会闪现一次就消失,问题 ...
随机推荐
- vue条件与循环
通过vue控制切换一个元素的显示也相当简单: <div id="app-3"> <p v-if="seen">Now you see m ...
- Unity场景渲染相关实现的猜想
如下,很简单的一个场景,一个Panel,二个Cube,一个camera,一个方向光,其中为了避免灯光阴影的影响,关掉阴影,而Panel和二个Cube都是默认的材质,没做修改,我原猜,这三个模型应该都动 ...
- 三、主流区块链技术特点及Hyperledger Fabric V1.0版本特点
一.Hyperledger fabric V1.0 架构 1.逻辑架构: 2.区块链网络 3.运行时架构 二.架构总结 1.架构要点 分拆Peer的功能,将Blockchain的数据维护和共识服务进行 ...
- 工具链接redis
RedisDesktopManager 链接 文件位置 /usr/loca/redis/etc/redis.conf 一.注释redis.conf文件中的:bind 127.0.0.1(在一段文字之前 ...
- 使用 wondershaper 在 Linux 中限制网络带宽使用
wondershaper 实际上是一个 shell 脚本,它使用 tc 来定义流量调整命令,使用 QoS 来处理特定的网络接口.外发流量通过放在不同优先级的队列中,达到限制传出流量速率的目的:而传入流 ...
- 服务器虚拟化ESXi 5.5安装过程
研究服务器虚拟化实践小结: 实验服务器硬件: 主板 华硕P8B-C/2L CPU Intel Xeon E3-1230 V2 3.3GHz RAM 8G ECC 1600MHz 硬盘 2T 2块 软件 ...
- 关于H5页面在iPhoneX适配(转)
1. iPhoneX的介绍 屏幕尺寸 我们熟知的iPhone系列开发尺寸概要如下: △ iPhone各机型的开发尺寸 转化成我们熟知的像素尺寸: △ 每个机型的多维度尺寸 倍图其实就是像素尺寸和开 ...
- H - Being a Good Boy in Spring Festival
一年在外 父母时刻牵挂 春节回家 你能做几天好孩子吗 寒假里尝试做做下面的事情吧 陪妈妈逛一次菜场 悄悄给爸爸买个小礼物 主动地 强烈地 要求洗一次碗 某一天早起 给爸妈用心地做回早餐 如果愿意 你还 ...
- ELK之elasticsearch6安装认证模块search guard
参考:https://www.cnblogs.com/marility/p/9392645.html 1,安装环境及软件版本 程序 版本 安装方式 elasticsearch 6.3.1 rpm ...
- Cross-origin plugin content from must have a visible size larger than 400 x 300 pixels, or it will be blocked. Invisible content is always blocked.
Cross-origin plugin content from must have a visible size larger than 400 x 300 pixels, or it will ...