我有一个代码,它给了我一个输出。部分代码如下。我试图绘制输出" xin" vs" tstep"实时。代码可以工作,但每次都在新窗口中绘制xin并且非常慢。请建议我更快地绘制它并在一个图中绘制数据。
tstep=1
fig=plt.figure()
plt.axis([-300,400,600,0])
x=list()
y=list()
plt.ion()
plt.show()
while tstep<tend+1:
tval=tstep
phase=0
if xin<intfxpos[0]+tan(intfang[0])*t*(tstep-1):
phase=1
acount=acount+1
else:
bcount=bcount+1
x.append(xin)
y.append(tstep-1)
plt.scatter((xin),(tstep-1))
#tstep=tend+1
plt.draw()
time.sleep(0.05)
plt.pause(0.0005)
答案 0 :(得分:1)
此主题似乎与this one非常相似。您发布的代码似乎来自其中一个答案,并且不会在每次抽奖时为我打开新窗口。
您可以使用matplotlib's animation API更接近实时绘图。同样在该线程中是动画API的一个例子,具有非常高的FPS。您必须在阅读fig.show()
行之后添加fig,ax = subplots(1,1)
,然后在函数定义之外的最底部调用run()
。