打印live d时连接数据点

2024-05-20 06:08:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些代码从一些温度传感器获取实时数据。该代码每隔5秒左右绘制一次从传感器获得的值,并在图形上绘制一个数据点。那里的一切都很好,所以我想如果把这些点连接起来可能会更好。我假设这只是在我的plt.plot的末尾添加linestyle = '-'的情况,但是这不会产生连接点的线。你知道吗

我试着简化代码,看看是否遗漏了我在下面展示的内容,但这仍然不能把要点联系起来。你知道吗

所以我的问题是。。。在绘制实时数据时有没有连接点的方法?你知道吗

x = [1,2,3,4,5,6,7,8,9]
y = [2,5,2,7,9,4,2,7,6]

i= 0

plt.ion()
plt.ylim(0,10)

for i in range (0,9):
    plt.plot(x[i],y[i], marker = 'o', linestyle = '-')
    i+=1
    plt.pause(1)

plt.show(block=True)

Tags: 数据代码图形内容plot绘制情况plt
1条回答
网友
1楼 · 发布于 2024-05-20 06:08:23

您的for循环在概念上有一些问题,但这与当前的问题无关。问题是,在您当前的情况下,每个plt.plot调用都会创建一个正好包含该数据点的新绘图。您要做的是创建一个绘图并更新其数据。你知道吗

为了纠正你的例子,我会这样做

plt.ion()
plt.xlim(0,10)  #  Need to make sure both x and y axes have proper ranges
plt.ylim(0,10)
line_plot=plt.plot([],[],marker='o',linestyle='-')[0] # Create an empty plot with which we can work

for xval,yval in zip(x,y):
    line_plot.get_xdata().append(xval) #  Attach a new data point
    line_plot.get_ydata().append(yval)   
    plt.pause(1)

相关问题 更多 >