如何使用python的matplotlib重绘图像?

kjg*_*ory 10 python matplotlib imshow

我想要做的事情看起来相当简单,但我有一段时间试图让它发挥作用.我只是尝试使用imshow绘制图像,然后在新数据到达时定期重新绘制它.

我从这开始:

fig = figure()
ax = plt.axes(xlim=(0,200),ylim=(0,200))
myimg = ax.imshow(zeros((200,200),float))
Run Code Online (Sandbox Code Playgroud)

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

myimg.set_data(newdata)
Run Code Online (Sandbox Code Playgroud)

我尝试过许多其他的事情,比如我叫ax.imshow(newdata)代替或者我已经尝试使用figure.show()set_data().

use*_*966 12

每次向图中添加新内容时,只需调用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)
Run Code Online (Sandbox Code Playgroud)