我目前正在设法用matplotlib和python显示更新的实时数据。
但我看到了错误。
我代码:
plt.rcParams['animation.html'] = 'jshtml'
fig = plt.figure()
ax = fig.add_subplot(111)
fig.show()
i = 0
plot_x , plot_y = [], []
while True :
###some code to get live updating x_in_data###
x_in_data = np.reshape(x_in, (1))
print(x_in_data)
plot_x.append(i)
plot_y.append(x_in_data[0])
ax.plot(plot_x, plot_y, color='b')
fig.canvas.draw()
ax.set_xlim(left=max(0, i-50), right= i+50)
time.sleep(0.1)
i += 1
我看到以下错误消息:
致命的Python错误:PyEval_恢复线程:空tstate
Python运行时状态:已初始化
当前线程0x 00004 fc 4(最近调用优先):
它实际上绘制了一个小的图形窗口,但不工作。
我在网上找到的每一个解决方案都不适合我的案子。
我想知道是否是值如何更新的问题:
数据值实际上是用换行符更新的,
【-18.75235738】
【-19.02642986】
【-18.75235738】
【-19.02642986】
【-18.75235738】
【-19.02642986】
【-18.92591474】
【-18.75235738】
就像这样,它并不是通过改变自己来更新的
我想知道是否与更新方法有关。
或者我也想知道它有一个有效的方法来绘制“新线更新值”。
1条答案
按热度按时间yacmzcpb1#
在***fig.convas.draw()*之后添加fig. canvas.flush_events()**可以解决这个问题。
参考来源:https://pythonguides.com/matplotlib-update-plot-in-loop/