Spyderを使っていると、このmatplotlibへのグラフや画像の描画が、なぜかIPythonへのinlineへの表示がデフォルトになっています。なんでだろ?
これを拡大縮小、画像の保存、ができるように別ウィンドウにポップアップさせるやり方を調べてみました。環境はWindows + Anacondaです。
ちなみにjupyterの設定はこっちです。本記事はSpyder編です。
状況
PythonのIDEとして、Spyderを使っています。ただこれデフォルトだと以下のコードは
img = cv2.imread("lena.jpg") plt.figure() plt.imshow(img[:,:,[2,1,0]]) #BGR順をRGB順へ入れ替え plt.show()
以下のようにIPythonコンソールと呼ばれるウィンドウへインライン表示されます。

大きいサイズの画像を観察しながらデバッグする時には少し不便です。グラフのプロットでも同じようにインライン表示されます。
設定
別ウィンドウへポップアップさせる方法を調べてみたところ、やはり手段はありましたが、直感的ではなかったです…。
まずは「ツール」の「設定」から

「IPythonコンソール」を選び、その中から「グラフィックス」タブを選びます。そこにある「コンソール内でどのように画像を表示するか選んでください。よくわからなければ、コンソール内で画像を表示したい場合インラインを選び、別ウィンドウで(ズーム、パン等)操作したい場合は自動を選んでください」との項目があります。

迷わず「自動」にします。そのあとSpyderを再起動させると、以下のように別ウィンドウでポップアップします。

このウィンドウからだと、ズームから保存までUI操作できます。

とても便利になりました。jupyter notebookをイメージするとインライン表示がいいのかもしれませんが、Spyderのようにコード書いて、解析して、デバッグして、みたいなフローで作業していると、別ウィンドウの方が便利な気がします。なぜデフォルトインラインなんだろう…。
まとめ
まとめるほどのことはありませんが…。Spyderでのmatplotlib別ウィンドウボップアップの設定でした。
どうやら調べてみると、IPython上から%から始まるマジックコマンドというコマンドでこのあたりの制御ができるようです。
ちなみに、pycharmではデフォルトでポップアップしました。

やっぱりそうだよね。ただボタンのレイアウトが微妙に違う…。
コメント