jupyterを使っていると、このmatplotlibへのグラフや画像の描画が、なぜかIPythonへのinlineへの表示がデフォルトになっています。
これを拡大縮小、画像の保存、ができるように別ウィンドウにポップアップさせるやり方を調べてみました。環境はWindows + Anacondaです。
状況
以前Spyderで同じようなことを試しましたが、これのjupyter編です。やっぱりポップアップしてほしい場合もありますよね?Spyderの設定方法は以下です。
状況はこの時と同じです。Jupyterデフォルトinlineのこれをポップアップさせる方法です。
調べてみると、やり方としてはQtを使う設定を最初にしてあげることで解決できそうです。メモを残しておきます。
設定
やり方としてはコード上に設定を記します。
import matplotlib.pyplot as plt %matplotlib qt : plt.show()
これでよさそうです。この%matplotlib qt ってのがおまじないです。一回これで動かすと以降は qtを省略できるようです。(ほんとかな?)
この%で始まるコマンドはマジックコマンドと呼ばれるもので、調べてみるとQt以外にもいろいろなバリエーションが用意されています。

こんな感じで表示が出るとともに、

ポップアップしてくれます。
画像に対しても同じようにできます。使い勝手が悪いですが、imshowはデフォルトでポップアップしてくれます。

上記のコードでちゃんと画像が別ウィンドウでポップアップしてくれました。

上記コードでちゃんとmatplotlibでもポップアップしてくれます。(cv2で画像を開いた場合、BGR順をRGB順に直さないといけないですけどね…)

こんな感じ。
デフォルトのインラインに戻す場合は、qtの所をinlineにするだけです。
import matplotlib.pyplot as plt %matplotlib inline : plt.show()
これで上記lenaさんは

こうなります。
まとめ
ポップアップしてくれるといろいろデバッグに役に立ちます。ここで紹介したマジックコマンドはほかにも
%matplotlib inline %matplotlib tk %matplotlib qt %matplotlib notebook
など環境によるとは思いますがいろいろあるようです。notebookなんかはinlineと別ウィンドウのいいとこどりをしてくれます。これがデフォルトでいいのではないかと思ってしまいます。
%matplotlib ?
引数に?をつけることでヘルプが出てくれるようです。
ちなみに画像表示系に関しては、昔調べてみたメモがあります。グレースケール系とか表示に癖があるので注意が必要です。
ここで画像表示系を3種類ほどまとめてます。jupyter上でも一応tkinter使えるようです。
コメント