matplotlibを別ウィンドウでポップアップ -jupyter notebook編

python

 jupyterを使っていると、このmatplotlibへのグラフや画像の描画が、なぜかIPythonへのinlineへの表示がデフォルトになっています。なんでだろ?

 これを拡大縮小、画像の保存、ができるように別ウィンドウにポップアップさせるやり方を調べてみました。環境はWindows + Anacondaです。

スポンサーリンク

状況

 以前Spyderで同じようなことを試しましたが、これのjupyter編です。やっぱりポップアップしてほしいですよね…?Spyderの設定方法は以下です。

 状況はこの時と同じです。なぜかデフォルトinlineのこれをポップアップさせる方法です。

 調べてみると、やり方としてはQtを使う設定を最初にしてあげることで解決できそうです。メモを残しておきます。

設定

 やり方としてはコード上に設定を記します。

import matplotlib.pyplot as plt
%matplotlib qt
    :
plt.show()

 これでよさそうです。この%matplotlib qt ってのがおまじないです。一回これで動かすと以降は qtを省略できるようです。(ほんとかな?)

 省略すると以下の様に”Using matplotlib backend: Qt5Agg”というメッセージとともにポップアップします。qtを明示的に書くとこのメッセージは出ないです。

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

 ポップアップしてくれます。ひとまずめでたしめでたし。

 画像に対しても同じようにできます。

 使い勝手が悪いですが、imshowはデフォルトでポップアップしてくれます。上記のコードでちゃんと画像が別ウィンドウでポップアップしてくれました。

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

 こんな感じ。

 デフォルトのインラインに戻す場合は、qtの所をinlineにするだけです。

import matplotlib.pyplot as plt
%matplotlib inline
    :
plt.show()

 これで上記lenaさんは

 こうなります。

スポンサーリンク

まとめ

 やはりポップアップしないとデバッグしにくい。拡大縮小、保存がGUI操作できないと。

 おそらく環境にQtが入っている必要があるのかなと想像します。ちなみに画像表示系に関しては、昔調べてみたメモがあります。グレースケール系とか表示に癖があるので注意が必要です。

 ここで画像表示系を3種類ほどまとめてます。jupyter上でも一応tkinter使えるようです。

 

pythonメモ
スポンサーリンク
キャンプ工学

コメント

タイトルとURLをコピーしました