python实时在线画曲线(附代码)
背景
使⽤pyqtgraph根据数据进⾏绘制曲线,在线显⽰。
说明
1. class ScrollingPloter将⽣成曲线窗⼝封装成类。
2. def __init__(self, title_name, plot_num, x_data_num = 300, refresh_rate = 1)初始化对象,titile_name为窗⼝标题,plot_num为曲线数
量,x_data_num为x轴的数据数量,默认为300,refresh_rate为在线更新频率,默认为1ms
3. x = ScrollingPloter("test", 2)声明⼀个标题为test的窗⼝,曲线数量为两个。
4.  timer1 = pg.QtCore.QTimer()
t(update1)
timer1.start(0.02)
声明⼀个定时器,connect⼀个函数,⽤来更新数据。
5.  import socket
server_addr =('192.168.100.148',52333)
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind(server_addr)
server.listen(5)
ss, addr = server.accept()
flag = False
data_str =""
def update1():
global flag
if(not flag):
data = ss.recv(2)
data_str = data.decode('utf-8')
if(data_str =="A5"):
flag = True
if flag:
data = ss.recv(6)
data_str = data.decode('utf-8')
print(data_str)
flag = False
x.data_array[1][:-1]= x.data_array[1][1:]
x.data_array[1][-1]=float(data_str)
x.curve_array[1].setData(x.data_array[1])
这个函数通过tcp server的⽅式来更新曲线中的数据,数据更新⽅式为滑动窗⼝。其中x.data_array[1]为曲线2
6.  import serial
ser=serial.Serial("COM7",115200)
def update():
data_str = ad(20).hex()
print(int(data_str[12:16],16)/10.0)
x.data_array[0][:-1]= x.data_array[0][1:]
x.data_array[0][-1]=(int(data_str[12:16],16)/10.0)
在线代码运行器x.curve_array[0].setData(x.data_array[0])
该函数使⽤串⼝⽅式更新数据,更新⽅式为滑动窗⼝。其中x.data_array[0]为曲线1
代码传送门

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。