我有一些代码可以从某些温度传感器获取实时数据。该代码每5秒左右绘制一次从传感器获得的值,并绘制图表上的数据点。那里的一切都很好,所以我认为如果积分合起来可能看起来会更好。我假设只是在linestyle = '-'
的末尾添加plt.plot
,但这不会产生连接点的行。
我尝试简化代码,看看我是否错过了我在下面显示的内容,但这仍然没有加入点数。
所以我的问题......在绘制实时数据时是否有办法加入积分?
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)
答案 0 :(得分:1)
您的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)