Python 动画绘图,一次一个点

Python Animated plotting, one point at a time

我有一组点[index, minimum],我想一次散布一个点i (index[i],minimum[i]) 这样我就可以看到情节的演变。 我想知道我该怎么做。我试过像这样的时间延迟:

    plt.figure()
    for i in range (np.size(index)):
        plt.plot(index[i], minimum[i],'*')
        plt.show()    
        time.sleep(1)

没用。
提前致谢。

可能看起来很愚蠢但是你导入了时间库吗?也没有缩进,你的代码真的是这样还​​是 copy/paste 失败了?

编辑:在评论中回答,使用plt.pause(1),见http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.pause

你应该使用 "animate" 绘图:

http://matplotlib.org/api/animation_api.html

还有一些很好的例子:

http://matplotlib.org/examples/animation/index.html

您必须使用 nan 数组来绘制空值,然后随着时间的推移更新您的数组。这是一个工作示例:

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

nbPoints = 100

nanArray = np.array(np.ones(nbPoints))
nanArray[:] = np.nan

index = range(nbPoints)
minimum = np.random.randint(5, size=nbPoints)
minimumPlotData = nanArray 

fig = plt.figure()
ax = plt.subplot(111)
ax.set_xlim(0, nbPoints)
ax.set_ylim(min(minimum), max(minimum))
li, = ax.plot(index,minimumPlotData, marker = 'o', linestyle="")

fig.canvas.draw()
plt.show(block=False)
for i in range(nbPoints):
    minimumPlotData[i]=minimum[i]
    li.set_ydata(minimumPlotData)
    fig.canvas.draw()
    time.sleep(1)