web-dev-qa-db-ja.com

Spyder IDEでMatplotlibを使用してインラインまたは別のウィンドウをプロットします

Matplotlibを使用していくつかのグラフをプロットする場合、通常はデフォルトのインライン描画で問題ありません。ただし、3Dグラフを描画するときは、回転などの相互作用を有効にできるように、それらを別のウィンドウに入れたいと思います。どの図をインラインで表示し、どの図を新しいウィンドウに表示するかをPythonコードで構成できますか?

Spyderで、[ツール]、[設定]、[Ipythonコンソール]、[グラフィックス]の順にクリックし、グラフィックスバックエンドで[インライン]ではなく[自動]を選択することを知っています。ただし、これにより、すべての図が新しいウィンドウに表示されます。たくさんのプロットがあるとき、それは面倒です。したがって、これらの3Dプロットのみを新しいウィンドウに配置しますが、他の2Dプロットはすべてインラインのままにします。まったく可能ですか?

ありがとう!

36
pyan

タイプ

%matplotlib qt

別のウィンドウにグラフが必要な場合、および

%matplotlib inline

インラインプロットが必要な場合

41
Stefano Fedele

[ツール] >> [設定] >> [IPythonコンソール] >> [グラフィックス] >> [バックエンド:インライン]に移動し、[インライン]を[自動]に変更して[OK]をクリックします

コンソールでカーネルをリセットすると、プロットが別のウィンドウに表示されます

23
AuHgNeM

次のような魔法のコマンド

%matplotlib qt  

iPythonコンソールとノートブックで動作しますが、スクリプト内では動作しません。

その場合、インポート後:

from IPython import get_ipython

つかいます:

get_ipython().run_line_magic('matplotlib', 'inline')

次のコードのインラインプロット、および

get_ipython().run_line_magic('matplotlib', 'qt')

外部ウィンドウでのプロット用。

編集:上記のソリューションは、OS/Spyderのバージョンによっては常に機能するとは限りません GitHubでのAnacondaの問題 。グラフィックバックエンドを自動に設定すると(別の回答:ツール>>設定>> IPythonコンソール>>グラフィック->自動に示されているように)、問題が解決します。

次に、コンソールの再起動後、コンソールを再起動することなく、get_ipython()コマンドを使用してインラインプロットウィンドウと外部プロットウィンドウを切り替えることができます。

14
Don Ernesto