2015-06-25 44 views
0

我想在matplotlib中使用动画制作卫星可视化工具。我想绘制5幅图像动画,然后在每次出现新图像时不断更新此动画。不断更新的数据馈送的Python matplotlib动画

我可以动画的最后5张这样的:

from mpl_toolkits.basemap import Basemap 
import matplotlib.pyplot as plt 
import numpy as np 
from matplotlib import animation 

fig = plt.figure(figsize=(20,10),frameon=True,tight_layout=True) 
ax = plt.subplot(111, frameon=False) 


map = Basemap(projection='cyl',resolution = 'i', area_thresh = 0.1,llcrnrlon=-75, llcrnrlat=-42,\ 
    urcrnrlon=-36, urcrnrlat=-10) 
map.drawlsmask(land_color='white', ocean_color='lightsteelblue', lakes=False) 
map.drawcoastlines(color='grey') 

map.drawcountries(color='grey') 
map.drawparallels(np.arange(-80., 81., 10.), labels=[1,0,0,0], fontsize=10) 
map.drawmeridians(np.arange(-180., 181., 10.), labels=[0,0,0,1], fontsize=10) 
map.drawstates() 
map.drawmapboundary() 

imgs = [] 

im = map.imshow(sat1,cmap='Greys',vmin=190, vmax=300,origin='upper') 
imgs.append([im]) 

im2 = map.imshow(sat2,cmap='Greys',vmin=190, vmax=300,origin='upper') 
imgs.append([im2]) 

im3 = map.imshow(sat3,cmap='Greys',vmin=190, vmax=300,origin='upper') 
imgs.append([im3]) 

im4 = map.imshow(sat4,cmap='Greys',vmin=190, vmax=300,origin='upper') 
imgs.append([im4]) 

im5 = map.imshow(sat5,cmap='Greys',vmin=190, vmax=300,origin='upper') 
imgs.append([im5]) 


ani = animation.ArtistAnimation(fig,imgs, interval=500) 

plt.show() 

我也可以显示一个图像,并与最新的一个更新的图像,使用FuncAnimation。但我如何更新ArtistAnimation显示的列表?我需要del imgs[0]并附加一个新的imshow。这样我总是会显示最新的5个卫星图像。

这可能吗?

回答