我想知道如何每隔几秒更新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()
答案 0 :(得分:0)
您所写的内容是正确的,但为了使您的代码动态化,您可以将代码放在函数中并将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值作为参数传递
答案 1 :(得分:0)
使用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)