使用matplotlib的Cartopy动画 - 清除每帧之间的地图?

时间:2018-02-28 10:42:53

标签: animation matplotlib cartopy

我认为我在某处错过了一个非常简单/基本的代码,但如果有人能告诉我哪里出错了,我会很感激。

subplot_kw = dict(projection=ccrs.PlateCarree())

fig, ax = plt.subplots(1, 1, figsize=(12, 12), subplot_kw=subplot_kw)


def animate(i):
    print(i)
    filename = filenames[i]
    print(filename)
    output = read_data(filename)
    lat = output['lat']
    lon = output['lon']

    ax.set_extent([lon_min, lon_max, lat_min, lat_max])

    land_50m = cartopy.feature.NaturalEarthFeature('physical', 'land', '50m')
    ocean_50m = cartopy.feature.NaturalEarthFeature('physical', 'ocean', '50m')
    ax.add_feature(ocean_50m, zorder=0, facecolor=sns.xkcd_rgb['bluish'])
    ax.add_feature(land_50m, zorder=0, edgecolor='black', facecolor=sns.xkcd_rgb['moss green'])
    img1 = ax.scatter(lon, lat, c=lat, s=0.05, alpha=1)

    return(img1)



anim = FuncAnimation(fig, animate, 3)

这几乎可以工作,但它会产生包含所有先前帧数据的动画,您可以在下面看到。如何清除帧之间的地图?

enter image description here

更新

我想我现在已经解决了这个问题,这与更新散点对象无关,而是每次都添加一个新的。

按照此处的示例https://matplotlib.org/examples/animation/rain.html,我使用了

img1.set_array(lat)
img1.set_offsets(np.vstack((lon, lat)).T)

更新了分散对象并且工作正常。

enter image description here

0 个答案:

没有答案