如何打开pyqtprgah的例子

在cmd命令行中输入以下命令,可以弹出pyqtpragh的例子,选中相应的项目,点击Run Example可以得到如下图类似的pyqtpragh图形

python -m pyqtgraph.examples

python gdb python gdb 曲线_子类

在pyqtgraph中绘制图形的几种方式

python gdb python gdb 曲线_数据_02


所有这些都将接受控制绘图数据如何解释和显示的相同基本参数:

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获得

python gdb python gdb 曲线_子类_03

集中画图方式的举例

导入需要的库

import pyqtgraph as pg
import numpy as np

x = np.random.random(50)
a = np.random.random(8)

最简单直接的plot()

def pg_plot():
    app = pg.QtGui.QApplication([])
    pg.plot(x,title='州的先生zmister.com PyQtGraph教程 - plot()方法')
    app.exec_()

python gdb python gdb 曲线_数据_04


使用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_()

python gdb python gdb 曲线_python gdb_05

通过GraphicsWindow方法绘制图形

def pg_windows_addplot():
    win = pg.GraphicsWindow(title="州的先生zmister.com PyQtGraph教程")
    plot = win.addPlot(title='窗口绘制图形')
    plot.plot(x)
    pg.QtGui.QApplication.exec_()

python gdb python gdb 曲线_绘制图形_06

在GraphicsWindow方法中添加子图

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_()

python gdb python gdb 曲线_python gdb_07

通过GraphicsLayout图形层方法绘制图形

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_()

通过GraphicsLayout图形层方法绘制图形的过程相较于前述的方法,稍显复杂。

首先通过实例化pyqtgraph的GraphicsView()方法,创建一个图形视图;

然后通过实例化pyqtgraph的GraphicsLayout()方法,创建一个图形层;

再设置图形视图的中心层为刚刚创建的图形层,并设置显示图形视图。

最后使用图形层的addplot()方法添加一个图形,再将使用图形的plot()方法将图形绘制出来。

python gdb python gdb 曲线_数据_08

使用PlotWidget绘制图形

def pg_plotwidget_plot():
    app = pg.QtGui.QApplication([])
    pw = pg.PlotWidget(title='州的先生zmister.com PyQtGraph教程 - 通过图形部件绘制图形')
    pw.plot(x)
    pw.show()
    app.exec_()

python gdb python gdb 曲线_绘制图形_09

通过PlotItem方法绘制图形

python gdb python gdb 曲线_绘制图形_10

参考:https://zmister.com/archives/219.html