12

我正在尝试做的事情似乎相当简单,但我正在努力让它发挥作用。我只是尝试使用 imshow 绘制图像,然后在新数据到达时定期重新绘制它。

我从这个开始:

fig = figure()
ax = plt.axes(xlim=(0,200),ylim=(0,200))
myimg = ax.imshow(zeros((200,200),float))

然后我假设我可以像这样调用 set_data 来更新图像:

myimg.set_data(newdata)

我已经尝试了很多其他的事情,例如我已经打电话ax.imshow(newdata)或者我尝试过使用figure.show()after set_data()

4

1 回答 1

13

每次将新内容附加到图形时,您都可以简单地调用 figure.canvas.draw() 。这将刷新情节。

from matplotlib import pyplot as plt
from builtins import input

fig = plt.figure()
ax = fig.gca()
fig.show()

block = False
for i in range(10):
    ax.plot(i, i, 'ko')
    fig.canvas.draw()
    if block: 
        input('pause : press any key ...')
    else:
        plt.pause(0.1)
plt.close(fig)
于 2014-01-05T18:29:37.063 回答