带有标签/图例的线条动画 - matplotlib

时间:2016-09-19 00:40:07

标签: python matplotlib

如何在matplotlib的线条动画中添加标签/图例?

def animate_solution(uf, u_analytical, u_numerical, ν, x, Δx, T, Δt, title=None):
    fig = plt.figure(figsize=(10,8))
    ax = plt.axes(xlim=(0.0, 2*np.pi), ylim=(0.0, 10.0))
    plt.title(title)
    plt.xlabel('$x$')
    plt.ylabel('$u$')

    # Initialise lines
    lines = []
    for index in range(2):
        lobj = ax.plot([],[])[0]
        lines.append(lobj)    

    def init():
        lines[0].set_data(x, u_analytical)
        lines[1].set_data(x, u_numerical)
        return lines,

    def animate_method(i, uf, u_analytical, u_numerical, ν, x, Δx, Δt):
        if i > 0:
            # Calcualte the new valus
            u_numerical = burgers(u_numerical, ν, x, Δx, Δt)
            u_analytical = np.asarray([uf(i*Δt, j, ν) for j in x])

        # Update data on the lines
        lines[0].set_data(x, u_analytical)
        lines[1].set_data(x, u_numerical)

        return lines

    return animation.FuncAnimation(fig, animate_method, fargs=(uf, u_analytical, u_numerical, ν, x, Δx, Δt), 
                                   init_func=init, frames=int(T/Δt), interval=50, repeat=False, blit=False)

当我尝试稍后调用lines.set_text时,使用诸如plt.legend()之类的内容会给我一个错误,因为它声明没有初始化标签。我尝试为新对象set_texts执行texts的解决方案,但它跳到任何地方并且不显示绘制线条的颜色。

0 个答案:

没有答案