印刷ステートメントの出力を、Ipythonノートブックセルで印刷およびプロットされた順序で、プロットとインターレースしたいと思います。たとえば、次のコードを考えてみます。
(ipython notebook --no-browser --no-mathjax
でipythonを起動)
%matplotlib inline
import matplotlib.pyplot as plt
i = 0
for data in manydata:
fig, ax = plt.subplots()
print "data number i =", i
ax.hist(data)
i = i + 1
理想的には、出力は次のようになります。
data number i = 0
(histogram plot)
data number i = 1
(histogram plot)
...
ただし、Ipythonでの実際の出力は次のようになります。
data number i = 0
data number i = 1
...
(histogram plot)
(histogram plot)
...
Ipythonの直接的な解決策、またはインターレース出力を取得するための回避策または代替解決策はありますか?
簡単な解決策があります。プロットした後、matplotlib.pyplot.show()関数を使用します。
これは、コードの次の行を実行する前にグラフを表示します
%matplotlib inline
import matplotlib.pyplot as plt
i = 0
for data in manydata:
fig, ax = plt.subplots()
print "data number i =", i
ax.hist(data)
plt.show() # this will load image to console before executing next line of code
i = i + 1
このコードは要求どおりに機能します