08-pyqtgraph绘图操作

Runner

双Y轴绘图
下面仅提供绘图函数
def figInit(self):
graph = pg.GraphicsLayoutWidget()
self.ui.graphLayout.addWidget(graph) # graphLayout 是QTdensigner的一个Layout空白框
graph.setBackground('w') # 白色背景
global p1, p2
p1 = graph.addPlot(title="动态仿真") # 标题
p1.showGrid(x=True, y=False) # x有网格y没有
p1.setLogMode(x=False, y=False) # 非对数坐标
p1.setLabel('left', text='房间温度', color='#000000', units='℃') # 左边坐标轴名字
p1.setLabel('bottom', text='时间', color='#000000', units='s') # 下边坐标轴名字
p1.getAxis('left').setPen('#000000') # 坐标轴上色
p1.getAxis('bottom').setPen('#000000') # 坐标轴上色
p1.getAxis('top').setPen('#000000') # 坐标轴上色
p1.showAxis('top') # 显示坐标轴
p2 = pg.ViewBox() # 添加第二条曲线
p1.showAxis('right') # 显示坐标轴
p1.scene().addItem(p2) # p2加入p1
p2.setXLink(p1) # x坐标轴与p1共享
p1.getAxis('right').setPen('b') # 坐标轴上色
p1.getAxis('right').linkToView(p2) # p1的右边坐标轴交给p2使用
p1.getAxis('right').setLabel('P M V', color='#0000ff') #右边坐标轴名字
p1.setYRange(10, 40) # 坐标轴显示区间
p2.setYRange(-3, 3) # 坐标轴显示区间
def updateViews(): # 拖动函数图像时动态更新坐标轴
global p1, p2
p2.setGeometry(p1.vb.sceneBoundingRect())
p2.linkedViewChanged(p1.vb, p2.XAxis)
updateViews()
p1.vb.sigResized.connect(updateViews)
global calcTime, calcTem, calcPmv, curve1 # 创建绘图的数据列表,设置为全局变量
calcTime = [] # 空数据列表
calcTem = []
calcPmv = []
curve1 = p1.plot(calcTime, calcTem, pen='#000000') # 在坐标p中绘图并返回图形对象为curve1