私はiPythonノートをmatplotlibと一緒に使用していますが、imshow()を呼び出すと画像が自動的に表示されることが多いのですが、そのような場合は避けたいときがあります。iPythonノートブック:imshow()で画像を出力しないようにするにはどうすればいいですか?
特に私は非常に大きな配列をループし、ディスクに保存する必要がある要素ごとにmatplotlibの図を生成します。そのフィギュア作成の一環として、imshow()を呼び出して既存のイメージ(私の場合はマップのスクリーンショット)を軸に描画し、後でその上に追加のマテリアルを描画する必要があります。 imshowをプロセスの一部として呼び出すと、iPythonのノートブックに最後のFigureがインラインで表示されますが、どうすればそれを防ぐことができますか?
私のコードは次のようなものになります:関数にこれを移動してみてください、と機能の開始時にpylab.ioff()
とpylab.ion()
へのエンド復帰時に行う
import matplotlib as plt
fig = plt.pyplot.figure(figsize=(20,20))
im2 = plt.pyplot.imread('/some/dir/fancy-map.png')
# Magic to calculate points, x_min etc.
fig.clf()
ax = fig.gca(xlim=(x_min, x_max), ylim=(y_min, y_max))
ax.imshow(im2, extent=(4, 4.5746, 42.5448, 43.3791), aspect=1.5)
raster = ax.imshow(points, vmin = 0, vmax=maxval, extent=(x_min, x_max, y_min, y_max), aspect=1.5, origin='lower')
fig.colorbar(raster)
ax.set_title('coordinates plot')
fig.savefig("fancy-annotated-map.png", bbox_inches=0)
完璧、ありがとう! 'pylab.ioff()'を使って終了しましたが、間違いなくiPythonの魔法の機能を使って見ていきます – Robin