【发布时间】:2018-05-24 16:47:12
【问题描述】:
我正在为底图图像上的 hexbin 热图制作动画,但不知道如何在开始下一帧之前删除之前的 hexes。我想用一些积累来制作动画,但以选定的时间间隔重置(我的数据有一个时间维度,我想每天显示给定年份的所有点,然后擦除十六进制并显示下一年)。我想我需要存储图层,并使用它的 .remove() 方法,但我想不通。
def update_hex(i, prev_layer):
if i == (len(years) - 1):
ani.event_source.stop()
print("End animation: Update Hex")
x, y = [mm.xmin, mm.xmax], [mm.ymin, mm.ymax]
x1, y1 = mm(df["LONGITUDE"][df["YEAR"] == years[i]].values, df["LATITUDE"][df["YEAR"] == years[i]].values)
x += x1.tolist()
y += y1.tolist()
x = np.array(x)
y = np.array(y)
if prev_layer:
prev_layer.remove()
hexlayer = mm.hexbin(x, y, gridsize = 75, bins = 100, mincnt = 0, cmap = 'my_cmap', linewidth = 0)
prev_layer = None
ani = animation.FuncAnimation(fig, update_hex, interval = 10, frames = range(len(years)), fargs = (prev_layer, ))
plt.show()
【问题讨论】:
标签: python matplotlib matplotlib-basemap