有一个类似的问题here,但我没有遇到同样的问题。以下是我的数据集的快照:
基本上,我想随着时间的推移设置下降坐标的动画。如您所见,日期按dropoff_datetime
排序。这是我的代码(非常类似于上面的问题)。
fig = plt.figure(figsize=(10,10))
ax = plt.axes(xlim=xlim, ylim=ylim)
points, = ax.plot([], [],'.',alpha = 0.4, markersize = 0.05)
def init():
points.set_data([], [])
return points,
# animation function. This is called sequentially
def animate(i):
x = test["dropoff_longitude"]
y = test["dropoff_latitude"]
points.set_data(x, y)
return points,
anim = animation.FuncAnimation(fig, animate, init_func=init,
frames=100, interval=20, blit=True)
plt.show()
与上面链接的问题类似,我的情节只是显示为空。我相信我正确编码它,不像上面的链接,我确实看到坐标随着时间的推移而变化。我不确定为什么情节是空的。
答案 0 :(得分:1)
默认情况下,一个像素是1点或0.72点(取决于您是在jupyter笔记本中运行代码还是作为独立绘图)。如果您创建标记为0.05
的绘图,则每个标记的大小分别为0.05
像素或0.07
像素。由于已经很难在屏幕上看到1个像素,特别是如果将alpha设置为0.4,则观察一个像素的二十分之一是根本不可能的。
解决方案:设置markersize = 5
或更高。
一个完整的工作示例:
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import pandas as pd
test = pd.DataFrame({"dropoff_longitude": [-72,-73,-74,-74],
"dropoff_latitude": [40,41,42,43]})
xlim=(-71,-75)
ylim=(39,44)
fig = plt.figure(figsize=(10,10))
ax = plt.axes(xlim=xlim, ylim=ylim)
points, = ax.plot([], [],'.',alpha = 1, markersize =5)
def init():
points.set_data([], [])
return points,
# animation function. This is called sequentially
def animate(i):
x = test["dropoff_longitude"]
y = test["dropoff_latitude"]
points.set_data(x, y)
return points,
anim = animation.FuncAnimation(fig, animate, init_func=init,
frames=100, interval=20, blit=True)
plt.show()