最近给一个Keithley源表写了个测试界面程序,在做数据交互时用到了pyqtgraph,中间碰到了一些坑,包括实时动态显示,图坐标轴设置,字体设置等,感觉pyqtgraph有些地方还待完善,在此分享给大家,碰到的同志可以少走点弯路。
1. 用了PlotWidget,直接嵌入到PyQt界面
2. 用QTimer做实时动态显示,之前用threading模块中的线程加函数的方法有点问题
3. 用setData方法,只更新数据,加快画图速度
4. 用下面代码设置label字体及大小,但‘right’和‘top’对应修改时有点问题,不知道原因。
label_style = {"font-family": "Times", "font-size": "16pt"}
pw.getAxis('left').setLabel('Current (A)', **label_style)
5. 图tick字体修改见代码,本来title也想加上,但字体没修改成功。
代码如下:
import pyqtgraph as pg
import numpy as np
import time
from pyqtgraph.Qt import QtGui, QtCore
def update():
global i, x, y, curve
curve.setData(x[:i+1], y[:i+1])
i += 1
time.sleep(0.5)
if i>len(x):
timer.stop()
if __name__ == '__main__':
app = pg.mkQApp()