使用来自2D阵列的matplotlib绘制数据

时间:2014-03-17 02:38:53

标签: python matplotlib

我在python中有一个列表,列表具有以下简单结构

Data=[
        [2,4,3,7,8],
        [4,5,7,8,3],
        ......and so on
     ]

现在我想在Data[0]Data[i] for 1<=i<len(Data)之间绘制一个图形,其中每个图形在2秒的间隙后出现。我为上面的任务编写了以下代码

import time
import matplotlib.pyplot as plt
for i in range(1,len(Data)):
        plt.plot(Y[0],Y[i],'ro')
        plt.show()
        time.sleep(2)
        plt.close()

但是,代码似乎不起作用,并且必须手动关闭每个数字以显示下一个数字。我哪里错了。请帮助。

2 个答案:

答案 0 :(得分:0)

plt.show()可以使用一个参数block,允许您将调用设置为非阻塞。

如果添加此参数,您的代码将起作用。

替换 plt.show()plt.show(block=False)

。{

你应该得到你想要的东西。

答案 1 :(得分:0)

如果您只想在x秒内循环浏览图表,则可以通过ion()

打开互动式绘图
import time
import matplotlib.pyplot as plt

plt.ion()

Data=[
        [2,4,3,7,8],
        [4,5,7,8,3],
        ... and so on 
     ]

for i in range(1,len(Data)):
        plt.plot(Data[0],Data[i],'ro')
        plt.draw()
        time.sleep(2)
        plt.close()