Python动画绘图,一次一个点

时间:2017-03-27 12:25:44

标签: python animation plot scatter

我有一组点[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)

它不起作用。
提前致谢。

3 个答案:

答案 0 :(得分:0)

可能看起来很愚蠢,但你导入了时间库吗?还有没有缩进,你的代码是真的那样还是复制/粘贴失败了?

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

答案 1 :(得分:0)

你应该使用" animate"情节:

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

这是一个很好的例子:

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

答案 2 :(得分:0)

您必须使用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)