Python 如何在matplotlib中的图形上绘制多个图像

Python 如何在matplotlib中的图形上绘制多个图像,python,matplotlib,Python,Matplotlib,我想看看python3中使用以下代码的连续绘图的效果: import numpy as np import matplotlib.pyplot as plt import time as time fg = plt.figure() ax = fg.add_subplot(1,1,1) plt.ion() for d in range(3): x_data = np.array([]) y_data = np.array([]) #plt.clf() for t

我想看看python3中使用以下代码的连续绘图的效果:

import numpy as np
import matplotlib.pyplot as plt
import time as time

fg = plt.figure()
ax = fg.add_subplot(1,1,1)
plt.ion()
for d in range(3):
    x_data = np.array([])
    y_data = np.array([])
    #plt.clf()
    for t in range(v):
        x = t
        x_data = np.append(x_data,x)
        y = t*d
        y_data = np.append(y_data,y)
    #ax.lines = ax.plot(x_data,y_data)
    plt.plot(x_data,y_data)
    #plt.show()
    #plt.pause(0.3) 
    time.sleep(0.3)
plt.show()
plt.close('all')
但是,无论我将codeplt.show放在循环中还是放在外部,在绘制3张图片时,它总是不起作用。

几个问题:

不要在GUI应用程序中使用time.sleep。它将使应用程序休眠=冻结 如果使用plt.ion,将调用plt.pause以引入一些延迟。 在调用plt.show之前,通过plt.ioff关闭交互模式是有意义的,否则循环后绘图将直接消失。 完整示例:

import numpy as np
import matplotlib.pyplot as plt

fg = plt.figure()
ax = fg.add_subplot(1,1,1)
plt.ion()
for d in range(3):
    x_data = np.array([])
    y_data = np.array([])
    v=3
    for t in range(v):
        x = t
        x_data = np.append(x_data,x)
        y = t*d
        y_data = np.append(y_data,y)

    plt.plot(x_data,y_data)

    plt.pause(0.3) 

plt.ioff()
plt.show()
可以使用动画代替交互模式。上面的内容看起来像

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

fg = plt.figure()
ax = fg.add_subplot(1,1,1)

def update(d):
    x_data = np.array([])
    y_data = np.array([])
    v=3
    for t in range(v):
        x = t
        x_data = np.append(x_data,x)
        y = t*d
        y_data = np.append(y_data,y)

    plt.plot(x_data,y_data)

ani = FuncAnimation(fg, update)
plt.show()

对不起,我可能没有说清楚。我的目的是在一张图上以0.3秒的间隔继续绘制3张图表。非常感谢您的回答。我试过你的建议,但会有三种效果。如何在图片中显示它们,我正在尝试使用动画。FuncAnimation@user7733855我只是想建议使用动画。这就是我们要走的路。上面答案中的代码运行良好,并生成一个图形,该图形将动态更新。如果您的情况并非如此,那么您可能在不支持交互模式的环境中运行此功能。在这种情况下,使用动画也无济于事。相反,您需要清楚地说明所处的环境。