我正在尝试使用matplotlib中的动画制作卫星可视化工具。我想绘制一个5幅图像动画,然后每次出现新图像时不断更新此动画。
我可以像这样动画最后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个卫星图像。
这可能吗?
答案 0 :(得分:0)