如何在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
的解决方案,但它跳到任何地方并且不显示绘制线条的颜色。