2016-01-20 60 views
1

我玩弄,由于一些参数,我可以控制的功能改变一些大型数据集。 我现在要绘制我的次要情节数据的分布在同一个人物。但是,由于数据非常大,因此构建直方图需要一段时间。如何获得蟒蛇matplotlib刷新所有图形

所以,我想,因为他们完成了一个有点像波纹管要绘制的次要情节。

import matplotlib.pyplot as plt 
import numpy as np 
import numpy.random as npr 

Ne=10 
MC=1000000 
f1d,f2d = plt.figure(),plt.figure() 
for Part in range(Ne): 
    datax=npr.normal(size=MC)+4*Part/Ne ##Simulates my big data 
    datay=npr.normal(size=MC) ##Simulates my big data 
    ###The 1d histogram 
    sf1d = f1d.add_subplot(1,Ne,Part+1,)  
    sf1d.hist(datax,bins=20,normed=True,histtype='stepfilled',alpha=0.5) 
    sf1d.hist(datay,bins=20,normed=True,histtype='stepfilled',alpha=0.5) 
    plt.show(block=False) 

    ###Some flush argument() 

    ###The 2d histogram 
    sf2d = f2d.add_subplot(1,Ne,Part+1) 
    sf2d.hist2d(datax,datay,bins=20,normed=True) 
    plt.show(block=False) 

    ###Some flush argument() 

然而,蟒蛇不会绘制所有实时子地块,但直到循环完成将缓冲这些。 如何强制matplotlib立即刷新次要情节?

+3

怎么样'plt.draw'? – tom

+0

@torn谢谢。正是我想要的。 –

回答

1

matplotlib docs

matplotlib.pyplot.draw()

重绘目前的数字。

这在交互模式下用于更新已改变的数字,但不会自动重新绘制。

甲更加面向对象的替代方案中,给出的任何图实例,fig,这是使用pyplot函数创建的,是:

fig.canvas.draw_idle()