我正在使用GeoPandas创建一个动画,一切进展顺利但是我想要包含一个计时器,以便知道与我的可视化相对应的时间。
我认为方法是通过set_text,但我认为Geopandas在绘制的更新(ax = ax)中丢失了所有内容。
因此,指令time_text是不能处理我的代码的指令。请任何帮助/建议/想法?在此先感谢!!
这是我的代码的重要部分:
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation
import geopandas as gpd
import pandas as pd
from shapely.geometry import Point
fig = plt.figure()
ax = plt.axes(xlim=(2.5, 7), ylim=(48, 52))
time_text = ax.text(2.8, 50.,"",transform = ax.transAxes, ha="right")
ax.legend()
t=0
bel = gpd.read_file('....')
def init():
global inicio
inicio = bel.plot( ax=ax, color='black', markersize=5)
time_text.set_text("")
return inicio, time_text
data = pd.read_csv('.....')
legend = plt.legend(loc='lower left',prop={'size': 7})
def animate(i):
global inu, iterar, t
t += 1
ax.clear()
inu = bel.plot( ax=ax, color='lightgray', linewidth=1., edgecolor='black')
cond = geo_data[ geo_data['newdate'].dt.minute == i]
iterar = cond.plot(ax=ax,marker='s',color='yellow', markersize=7.,alpha=0.3,label='Max >= 60 Tonne');
legend = plt.legend(loc='lower left',prop={'size': 7})
time_text.set_text("time = "+str(t))
return iterar,inu,time_text
anim = animation.FuncAnimation(fig, animate, init_func=init,frames=60, interval=500, blit=False)
plt.show()