2016-04-18 29 views
4

を作るのに、なぜJupyterノートが重複したプロットを作成しています。今、私はちょうど働いている簡単なコードを持っています:私は毎秒またはを更新Jupyterノートブックのプロットを作成しようとしている更新プロット

%matplotlib inline 
import time 
import pylab as plt 
import numpy as np 
from IPython import display 

for i in range(10): 
    plt.close() 
    a = np.random.randint(100,size=100) 
    b = np.random.randint(100,size=100) 

    fig, ax = plt.subplots(2,1) 
    ax[0].plot(a) 
    ax[0].set_title('A') 
    ax[1].plot(b) 
    ax[1].set_title('B') 

    display.clear_output(wait=True) 
    display.display(plt.gcf()) 
    time.sleep(1.0) 

私は毎秒作成したプロットを更新しました。しかし、最後に、プロットの余分なコピーがあります:

enter image description here

は、なぜそれがこれをやっていますか?そして、どうすればこれが起こらないのですか?前もって感謝します。

+0

この質問には、このヒントがあります:http://stackoverflow.com/questions/34486642/what-is-the-currently-correct-way-to-dynamically-update-plots-in-jupyter-ipython ?rq = 1 – roadrunner66

答えて

3

inlineバックエンドはセットアップされている各セルの実行が終了すると、セル内に作成任意matplotlibのプロットが表示されるように。

あなたは一度display機能を使ってあなたの姿を表示しているし、その後の図は、インラインバックエンドによって再び自動的に表示されています。

これを防止するための最も簡単な方法は、細胞内のコードの最後にplt.close()を追加することです。

関連する問題