尽管没有错误[Python]

时间:2017-11-25 11:14:48

标签: python animation matplotlib

我在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()

不幸的是,在运行该功能后没有任何反应。 Screenshot of the plot

后来我想增加在图中生成多个随机游走的可能性(我的意思是我希望它们同时生成)。我该怎么办?

1 个答案:

答案 0 :(得分:0)

不可能通过一个点画一条线 如果要绘制线图,plot或线set_data方法的参数必须至少有两个点。

而不是line.set_data(trajectory[i, 0], trajectory[i, 1])你可能想要

line.set_data(trajectory[:i, 0], trajectory[:i, 1])

绘制直到i点的所有点的直线。