【问题标题】:how to plot multiple animated functions on the same plot with matplotlib?如何使用 matplotlib 在同一个图上绘制多个动画函数?
【发布时间】:2020-01-17 21:35:54
【问题描述】:

我想在同一个图上绘制两个动画函数以比较两个函数,例如 exp(-x2) 和 exp(x2) 我知道如何为函数设置动画 这是我用来为函数设置动画的代码

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
%matplotlib qt
fig, ax = plt.subplots()
xdata, ydata = [], []
ln, = plt.plot([], [], 'r', animated=True)
f = np.linspace(-3, 3, 200)
def init():
    ax.set_xlim(-3, 3)
    ax.set_ylim(-0.25, 2)
    ln.set_data(xdata,ydata)
    return ln,
def update(frame):
    xdata.append(frame)
    ydata.append(np.exp(-frame**2))
    ln.set_data(xdata, ydata)
    return ln,
ani = FuncAnimation(fig, update, frames=f,enter code here
                    init_func=init, blit=True, interval = 2.5,repeat=False)
plt.show()



enter code here

通过同样的方法,我们可以绘制另一个函数,但是我们如何在同一个图上显示它们

【问题讨论】:

  • 添加另一行,如 ln2, = plt.plot(...),并以与 ln 相同的方式更新该行。
  • 我试过但得到这个错误 unindent does not match any external indentation level
  • 缩进错误只是基本的python。确保始终使用相同数量的空格(最好 4 个)进行缩进。

标签: python matplotlib


【解决方案1】:

正如评论中提到的,添加另一行将起作用。这是 exp(-x^2) 和 exp(x^2) 的一个工作示例,我还更改了限制以更好地查看两者:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation


fig, ax = plt.subplots()
xdata, ydata0, ydata1 = [], [], []
ln0, = plt.plot([], [], 'r', animated=True)
ln1, = plt.plot([], [], 'b', animated=True)
f = np.linspace(-3, 3, 200)

def init():
    ax.set_xlim(-3, 3)
    ax.set_ylim(-0.25, 10)
    ln0.set_data(xdata,ydata0)
    ln1.set_data(xdata,ydata1)
    return ln0, ln1

def update(frame):
    xdata.append(frame)
    ydata0.append(np.exp(-frame**2))
    ydata1.append(np.exp(frame**2))
    ln0.set_data(xdata, ydata0)
    ln1.set_data(xdata, ydata1)
    return ln0, ln1,

ani = FuncAnimation(fig, update, frames=f,
                    init_func=init, blit=True, interval=2.5, repeat=False)
plt.show()

对于下面的 gif,我将 plt.show() 行更改为 ani.save('animated_exp.gif', writer='imagemagick') 并将间隔更改为 25。

【讨论】:

    猜你喜欢
    • 2014-04-12
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多