我在Python中编写随机游走第二维。我想动画它如何成长"。我想使用animation.FuncAnimation
中的matplotlib
,但不幸的是,它并没有按照我的意愿运作。但是没有错误,我在iPython控制台中使用了%matplotlib tk
我的代码:
def random_walk_animated_2D(n, how_many = 1):
possible_jumps = np.array([[0, 1], [1, 0], [-1, 0], [0, -1]])
where_to_go = np.random.randint(4, size = n)
temp = possible_jumps[where_to_go, :]
x = np.array([[0, 0]])
temp1 = np.concatenate((x, temp), axis = 0)
trajectory = np.cumsum(temp1, axis = 0)
fig = plt.figure()
ax = plt.axes(xlim = (np.amin(trajectory, axis = 0)[0], np.amax(trajectory, axis = 0)[0]),
ylim = (np.amin(trajectory, axis = 0)[1], np.amax(trajectory, axis = 0)[1]))
line, = ax.plot([], [], lw = 2)
def init():
line.set_data([], [])
return line,
def animate(i):
line.set_data(trajectory[i, 0], trajectory[i, 1])
return line,
anim = animation.FuncAnimation(fig, animate, init_func = init,
frames = 200, interval = 30, blit = True)
plt.show()
后来我想增加在图中生成多个随机游走的可能性(我的意思是我希望它们同时生成)。我该怎么办?
答案 0 :(得分:0)
不可能通过一个点画一条线
如果要绘制线图,plot
或线set_data
方法的参数必须至少有两个点。
而不是line.set_data(trajectory[i, 0], trajectory[i, 1])
你可能想要
line.set_data(trajectory[:i, 0], trajectory[:i, 1])
绘制直到i
点的所有点的直线。