【发布时间】:2017-12-28 09:27:09
【问题描述】:
在这个 Kaggle Kernel https://www.kaggle.com/asindico/new-york-taxi-exploration 中,我无法使用 Basemap 和 hexbin 显示 matplotlib 动画。
这里是代码sn-p
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
from matplotlib import cm
from matplotlib import animation, rc
from IPython.display import HTML
%matplotlib inline
#40.758896, -73.985130.
west, south, east, north = -74.1, 40.60, -73.80, 40.9
day=1
df_day=df[((df.pickup_datetime<'2016-01-'+str(day+1))&
(df.pickup_datetime>='2016-01-'+str(day)))]
fig,axarr = plt.subplots()
m = Basemap(projection='merc', llcrnrlat=south, urcrnrlat=north,
llcrnrlon=west, urcrnrlon=east, lat_ts=south, resolution='i',ax=axarr)
def init():
df_time= df_day[((df_day.pu_hour>=0)&(df_day.pu_hour<0))]
x, y = m(df_time['pickup_longitude'].values, df_time['pickup_latitude'].values)
m.hexbin(x, y, gridsize=300, bins='log', cmap=cm.YlOrRd_r);
return (m,)
def animate(i):
df_time= df_day[((df_day.pu_hour>=i)&(df_day.pu_hour<i+1))]
x, y = m(df_time['pickup_longitude'].values, df_time['pickup_latitude'].values)
m.hexbin(x, y, gridsize=300, bins='log', cmap=cm.YlOrRd_r);
return (m,)
anim = animation.FuncAnimation(fig, animate, init_func=init,frames=5, interval=1,blit=False,repeat=True)
fig.set_size_inches(12,10)
anim.save('pickup_animation.gif', writer='imagemagick', fps=2)
【问题讨论】:
-
为什么投反对票?
-
我(还)没有投反对票,但很明显为什么其他人投了反对票:听起来像“这是我的代码,请找出问题”这样的问题不太受欢迎。您可能会坚持使用How to Ask 并提供清晰的问题描述。
-
现在我投了反对票,因为在花了 10 分钟从 kaggle 网站上获取数据并运行代码之后,结果证明代码运行正常。没有提供适当的问题描述而浪费其他人 15 分钟的时间实际上比投反对票更值得。
-
您是否设法显示动画地图?如何 ?正如您在已发布的内核中看到的那样,地图没有动画。你不需要下载 Kaggle 内核。你可以分叉它。
-
动画保存到
pickup_animation.gif。你可以使用任何你喜欢的工具来展示它。我的观点是,您需要清楚地说明您的期望、您得到的以及两者的不同之处,以便有人帮助您。
标签: python matplotlib jupyter-notebook kaggle