2016-01-20 27 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()