Python 如何在matplotlib中更新绘图或图形

Python 如何在matplotlib中更新绘图或图形,python,matplotlib,Python,Matplotlib,我想知道如何每隔几秒钟更新matplotlib中的图形和/或绘图。代码: import matplotlib.pyplot as plt import numpy as np axes = plt.gca() axes.set_xlim([0,5]) axes.set_ylim([0,100]) X = [0, 1, 2, 3, 4, 5] Y = [15, 30, 45, 60, 75, 90] plt.plot(X, Y) plt.xlabel('Time spent studying (h

我想知道如何每隔几秒钟更新matplotlib中的图形和/或绘图。代码:

import matplotlib.pyplot as plt
import numpy as np
axes = plt.gca()
axes.set_xlim([0,5])
axes.set_ylim([0,100])
X = [0, 1, 2, 3, 4, 5]
Y = [15, 30, 45, 60, 75, 90]
plt.plot(X, Y)
plt.xlabel('Time spent studying (hours)')
plt.ylabel('Score (percentage)')
plt.show()

您所写的是正确的,但是为了使代码动态,您可以将代码放入函数中,并将X和Y坐标传递给函数。一个示例如下所示

def GrapgPlot(X, Y):


   "Your code"
GrapgPlot([0, 1, 2, 3, 4, 5],[90, 30, 45, 60, 75, 90])
在绘图中,如果确定X轴不会改变,则可以在代码中固定X轴,并仅将Y轴值作为用户的列表作为输入,并将其作为参数传递到函数中

如果您确实想要用户交互,那么这是最好的方式。使用循环更新X轴和Y轴列表,并将函数中的X轴和Y轴值作为参数传递。

使用
time.sleep(1)
可查看更改,反转
Y
可更新新数据。希望这就是你想要的:

%matplotlib notebook

import time

import matplotlib.pyplot as plt

X = [0, 1, 2, 3, 4, 5]
Y = [15, 30, 45, 60, 75, 90]

fig, ax = plt.subplots()
ax.set_xlim([0,5])
ax.set_ylim([0,100])
ax.set_xlabel('Time spent studying (hours)')
ax.set_ylabel('Score (percentage)')
l, = ax.plot(X, Y)

for ydata in [Y, Y[::-1]]*2:
    l.set_ydata(ydata)
    fig.canvas.draw()
    time.sleep(0.5)

您要更新的新数据/图形是什么?您希望如何使用事件或几秒钟后更新它?每隔几秒钟更新的新数据是什么?每个绘图的坐标可以循环,也可以调用plt.ion(),在其中启用交互式绘图或调用plt.pause(0.05)来绘制新数据并运行事件循环