私は iPython ノートブックを matplotlib と一緒によく使用しますが、喜んで imshow() を呼び出すと自動的に画像が表示されるケースがたくさんありますが、その動作を防止したい場合があります。
具体的には、非常に大きな配列をループして、ディスクに保存する必要がある要素ごとに matplotlib で図を生成します。その図の作成の一環として、 imshow() を呼び出して既存の画像 (私の場合はマップのスクリーンショット) を軸に描画し、後でその上に追加のマテリアルを描画する必要があります。プロセスの一部として imshow を呼び出すたびに、最終的な図が iPython ノートブックにインラインで表示されますが、どうすればそれを防ぐことができますか?
私のコードは次のようになります。
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)