2016-05-02 14 views
0

のPythonインタプリタ内で実行されている次のコードは、ランダムな値異なる振る舞い

>>>fig = plt.figure();ax1 = fig.add_subplot(111);plt.ion();ax1 = ax1.imshow(np.random.rand(256,256)) 

と数字が表示されます。

import numpy as np 
import matplotlib.pyplot as plt 
import time 

fig = plt.figure() 
ax1 = fig.add_subplot(111) 
plt.ion() 
ax1 =ax1.imshow(np.random.rand(256,256)) 

動作の違いは何ですか?

+1

スクリプトに 'plt.show()'を追加する必要があります。長い答えは、バックエンドと関係があります。 – ssm

答えて

0

私は何が起こっているかを疑うには、その

matplotlib.rcParams['interactive'] == True 

であり、これはあなたの.matplotlibrcファイルに設定されています。 plt.showは(あなたがコマンドプロンプトと対話できる数字を得るように、あなたはより多くのコードを入力することができます)、非ブロッキングであることを意味し

。しかし、スクリプトの場合は、(暗黙の)plt.showはブロックしないので、スクリプトは終了します。

私はFalseinteractive rcparamを設定して、どちらかexplitily IPython%matplotlib魔法を使用REPLか(好ましい方法)でtrueに設定示唆しています。

関連する問題