Python 3.5,windows 10 Pro。
我正在尝试连续绘制一个8x8像素数组(为了问题我只使用随机数据,但实际上我是从串口读取的。)
我可以使用while循环来完成它,但我需要切换到matplotlib.animation.FuncAnimation,我无法让它工作。我已经尝试查看帮助文件,并尝试按照matplotlib.org here中的示例进行操作,但我无法遵循它。
有人可以帮我弄清楚如何使用FuncAnimation和pcolormesh连续绘制8x8像素数组吗?这是我到目前为止所得到的:
import scipy as sp
import matplotlib.pyplot as plt
from matplotlib import animation
plt.close('all')
y = sp.rand(64).reshape([8,8])
def do_something():
y = sp.rand(64).reshape([8,8])
fig_plot.set_data(y)
return fig_plot,
fig1 = plt.figure(1,facecolor = 'w')
plt.clf()
fig_plot = plt.pcolormesh(y)
fig_ani = animation.FuncAnimation(fig1,do_something)
plt.show()
如果您想查看while循环代码,只是为了确切知道我要重现的内容,请参阅下文。
import scipy as sp
import matplotlib.pyplot as plt
plt.figure(1)
plt.clf()
while True:
y = sp.rand(64).reshape([8,8])
plt.pcolormesh(y)
plt.show()
plt.pause(.000001)
答案 0 :(得分:0)
我能够使用imshow而不是pcolormesh找到解决方案。如果其他人正在努力解决我遇到的同样问题,我已经发布了下面的工作代码。
import scipy as sp
import matplotlib.pyplot as plt
import matplotlib.animation as animation
Hz = sp.rand(64).reshape([8,8]) # initalize with random data
fig = plt.figure(1,facecolor='w')
ax = plt.axes()
im = ax.imshow(Hz)
im.set_data(sp.zeros(Hz.shape))
def update_data(n):
Hz = sp.rand(64).reshape([8,8]) # More random data
im.set_data(Hz)
return
ani = animation.FuncAnimation(fig, update_data, interval = 10, blit = False, repeat = False)
fig.show()