相关文章推荐

08-pyqtgraph绘图操作

双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
 
推荐文章