我简要报告了我的情况:
我在python中运行模拟,并在数据处理迭代期间绘制图表。 问题是:
这里有我正在谈论的代码:
.cmi
我希望有人有可能的解决方案。因为当我关闭图形窗口时,它然后重新打开并紧固,我想像清晰的变量可能会帮助我。但我不知道如何处理它。
PS:另一个问题是以下行不起作用,我认为因为它与其他数据的红点重叠:
uxs =[]
uxP =[]
i=0
for z in Ti:
# Unscendet Kalman Filter operations
i+=1
ukf.predict(dt, fx_args=(Te[floor(i/4.)],u))
ukf.update(z)
uxs.append(ukf.x.copy())
uxP.append(ukf.P.copy())
# Create Temporary Version of uxs and uxP, in this way I can use them as a numpy array
uxsTemp = np.array(uxs)
uxPTemp = np.array(uxP)
# Dynamic graph
plt.figure("Live Temperature")
ax = plt.gca()
t = np.arange(0,uxsTemp[:,0].size,1) # Create a timeline with step 1, longer as the current data number
plt.plot(t, Ti[0:uxsTemp[:,0].size], 'ro', label='External measures (Ti(t))')
plt.plot(t, uxsTemp[:,0],'b', label='Estimated (Ti(t))')
if(i%50==0):
print("mod:"+str(i%50) +"\nP:"+str(ukf.P[0,0]))
circle1 = plt.Circle((uxsTemp[:,0].size, ukf.x[0]), sqrt(ukf.P[0,0]), color='g', fill=True)
ax.add_artist(circle1)
ax.plot((uxsTemp[:,0].size, ukf.x[0]),'ys', color='black') # I put a yellow point on current point
plt.xlim(uxsTemp[:,0].size - 10,uxsTemp[:,0].size + 5)
plt.ylim(-5,40)
plt.show(block=False)
pause(0.00000001)
但实际上我并不关心这一步的最后一个,第一个优先。