pygtpragh绘制曲线图(1)

如何打开pyqtprgah的例子

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

python -m pyqtgraph.examples

在这里插入图片描述

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

在这里插入图片描述

集中画图方式的举例

导入需要的库

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

在这里插入图片描述
使用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方法绘制图形

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

在这里插入图片描述在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_()

在这里插入图片描述通过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()方法将图形绘制出来。
在这里插入图片描述使用PlotWidget绘制图形

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

在这里插入图片描述通过PlotItem方法绘制图形
在这里插入图片描述参考:[1] https://www.cnblogs.com/XJT2018/p/10276089.html
[2] https://zmister.com/archives/219.html

发布了12 篇原创文章 · 获赞 1 · 访问量 304

猜你喜欢

转载自blog.csdn.net/little_ox/article/details/104914063
今日推荐