То, что я пытаюсь сделать, кажется довольно простым, но у меня есть время, пытаясь заставить его работать. Я просто пытаюсь сделать изображение с помощью imshow, а затем повторно рисовать его по мере поступления новых данных.Как перерисовать изображение с помощью matplotlib python?
Я начал с этим:
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()
после set_data()
.
Это сделало меня ближе. Когда я запускаю свой код выше, он открывает фигуру в начале выполнения и рисует окончательный график только в конце выполнения (вместо того, чтобы каждый раз показывать точку при каждом возврате). Я запускаю python 2.7 в spider на windows 7, если это имеет какое-то значение. – kjgregory
Не знаю. Я тестировал его как на linux, так и на windows7, и он работает. Возможно, это может произойти из вашей версии matplotlib. Я считаю, что синтаксис может меняться между разными версиями. Я использую matplotlib 1.2.0 – user2660966
Я узнал, что если вы делаете plt.pause() там, он дает фигуре возможность перерисовать перед продолжением выполнения. Другие способы вставки ожидания не делают этого. – kjgregory