【Python_PyQtGraph 学习笔记(一)】GraphicsLayoutWidget类的基本用法(持续更新)

GraphicsLayoutWidget类的基本用法(持续更新)

前言:

PyQtGraph中的绘图类有两种,分别为:PlotWidgetGraphicsLayoutWidget,都是 GraphicsView 子类:
1、PlotWidget(GraphicsView) 只能内置一个绘图对象PlotItem;
2、GraphicsLayoutWidget(GraphicsView),这个子类用于生成多面板图形,可以内置多个绘图对象。
此篇文章中只介绍GraphicsLayoutWidget类的基本用法,包括同一图形显示多条曲线,显示网格线,设置背景色等。

正文

1、创建GraphicsLayoutWidget图形布局部件

		import pyqtgraph as pg
		self.ui.pw = pg.GraphicsLayoutWidget(show=True) # GraphicsLayoutWidget图形布局部件
		#show:如果为True,则在部件创建后立即显示;
		#如果部件没有父组件,则会显示在一个新窗口。

2、修改GraphicsLayoutWidget图形布局部件的背景色

		self.ui.pw.setBackground('w')  # GraphicsLayoutWidget图形布局部件 背景色改为白色

3、创建GraphicsLayoutWidget图形布局部件的标签

        self.ui.pwLabel = pg.LabelItem(justify='right')  # 创建坐标的标签
        self.ui.pw.addItem(self.ui.pwLabel)  # 将坐标添加到GraphicsLayoutWidget图形布局部件中来

4、GraphicsLayoutWidget图形布局部件添加PlotItem图形对象(画布)

		self.ui.Curve = self.ui.pw.addPlot(row=1, col=0)  # PlotItem图形对象

每次使用addPlot()方法都会显示一个图形窗口,允许通过row和col参数调整行列位置

5、PlotItem图形对象设置网格线

		self.ui.Curve.showGrid(x=True, y=True)  # PlotItem图形对象 显示网格线

6、PlotItem图形对象设置下采样模式

		self.ui.Curve.setDownsampling(mode='peak')  # 下采样模式

下采样:缩小图像,或称降采样。
共有三种模式:
mean: 取N个样本的均值。
subsample:通过取N个样本中的第一个样本,这种方法最快,但最不准确。
peak: 遵循原始数据的最小值和最大值绘制一个锯齿波,这种方法可以产生最好的数据可视化表示,但速度较慢。

7、PlotItem图形对象设置坐标轴刻度

        self.ui.Curve.setLabel("left", "温度", units='℃')  # 设置左侧坐标轴刻度
        self.ui.Curve.setLabel("bottom", "时间", units='s')  # 设置下侧坐标轴刻度

8、PlotItem图形对象设置坐标轴刻度显示模式

		self.ui.Curve.setLogMode(x=False, y=False)  # False代表线性坐标轴,True代表对数坐标

如果设置为 True,则以对数刻度显示刻度并相应地调整值。

9、PlotItem图形对象设置显示曲线对象PlotDataItem的Name属性

		self.ui.Curve.addLegend(offset=(1, 1))  # 显示曲线属性name 位置放置在左上角

10、PlotItem图形对象添加PlotDataItem曲线对象

        self.__m_temCurveLst = [0] * 10  # 温度曲线数组
        self.__m_humCurveLst = [0] * 10  # 湿度曲线数组
        self.ui.temCurve = self.ui.Curve.plot(self.__m_temCurveLst, pen=pg.mkPen('black', width=1), name="温度曲线")
        self.ui.humCurve = self.ui.Curve.plot(self.__m_humCurveLst, pen=pg.mkPen('green', width=1), name="湿度曲线")

11、在PlotDataItem曲线对象创建CurvePoint点对象

		self.temPoint = pg.CurvePoint(self.ui.temCurve)  # 创建温度曲线上的点
        self.humPoint = pg.CurvePoint(self.ui.humCurve)  # 创建湿度曲线上的点

12、设置CurvePoint点对象的位置

        self.temPoint.setPos(0.5)  # Point设置位置的float类型范围是0-1

注意:CurvePoint点对象可设置的范围是0-1

13、创建ArrowItem箭头对象,并将ArrowItem箭头对象添加到CurvePoint点对象上

        self.arrow = pg.ArrowItem(angle=90)  # 创建一个箭头
        self.arrow.setParentItem(self.ui.temPoint)  # 将箭头添加到温度点上

14、创建InfiniteLine线对象,并在PlotItem图形对象添加

 		self.minLine = pg.InfiniteLine(angle=0, movable=True, pen=pg.mkPen('blue', width=0.5), name="下限")  # 设置下限
        self.maxLine = pg.InfiniteLine(angle=0, movable=True, pen=pg.mkPen('red', width=0.5), name="上限")  # 设置上限
        self.ui.Curve.addItem(self.minLine, ignoreBounds=True)  # 在图形中添加下限
        self.ui.Curve.addItem(self.maxLine, ignoreBounds=True)  # 在图形中添加上限

15、PlotItem图形对象禁用鼠标拖动、缩放操作

		self.ui.Curve.setMouseEnabled(x=False, y=False)  # 禁用轴操作

16、隐藏&显示PlotItem图形对象 的 自动缩放按钮“A”(左下角)

		self.ui.Curve.hideButtons()  # 隐藏PlotItem对象 的 自动缩放按钮“A”(左下角)
		self.ui.Curve.showButtons()  # 显示PlotItem对象 的 自动缩放按钮“A”(左下角)

17、PlotItem图形对象 移除&清空 曲线对象PlotDataItem

		self.ui.Curve.removeItem(self.ui.temCurve)  # 移除温度曲线
		self.ui.Curve.clear() # 清空曲线对象

18、PlotItem图形对象设置是否可见 & 隐藏、显示PlotItem图形对象

		self.ui.Curve.setVisible(False)  # 隐藏图形对象
		self.ui.Curve.setVisible(True)  # 显示图形对象

你可能感兴趣的:(#,PyQtGraph学习笔记,Python学习笔记,python,ui,pyqt)