web-dev-qa-db-ja.com

Spyder / IPython / matplotlibで対話型プロットを再度取得する方法を教えてください。

私はWindows 7でPython(x、y)2.7.2.3から 2.7.6. にアップグレードしました(そして最後にfunction_name?と入力してオブジェクトインスペクタでdocstringを見ることができてうれしいです)プロットは以前のように機能しません。

以前(Spyder 2.1.9、IPython 0.10.2、matplotlib 1.2.1)、 このスクリプト をプロットすると、たとえば対話型ウィンドウにサブプロットを並べてプロットしていました。

enter image description here

さて、(Spyder 2.2.5、IPython 1.2.0、Matplotlib 1.3.1)私が物事をプロットしようとすると、それはサブインラインを小さなインラインPNGとして行います。これは IPythonの変更

tiny inline PNGs

だから私はオプションに入って、これを見つけました:

graphics options

4つのサブプロットを並べて表示することで、古いインタラクティブプロットを元に戻すことができると言っているようですが、「自動」に切り替えてプロットしようとしても何もしません。プロットはまったくありません。

このドロップダウンをQtに切り替えるか、または[Activate support]をオフにすると、最初のサブプロットまたはその一部のみがプロットされて停止します。

enter image description here

対話型の4つの並列サブプロットの古い動作を1つの図にまとめるにはどうすればよいですか。

74
endolith

バックエンドを自動に変更します。

ツール>設定> IPythonコンソール>グラフィック>グラフィックバックエンド>バックエンド:自動

その後、Spyderを閉じて開きます。

113
Victor Arellano

SpyderのIPythonコンソールで 組み込みのマジックコマンド とタイプすることでこれを素早く制御できます。これは設定メニューからこれらを選ぶよりも早く見つけることができます。 Spyderやカーネルを再起動しなくても、変更は即座に有効になります。

"自動"(つまり対話型)プロットに切り替えるには、次のように入力します。

%matplotlib auto

それからあなたが "インライン"に戻したいならば、これをタイプしてください:

%matplotlib inline

(注:これらのコマンドはIPython以外のコンソールでは機能しません)

36
Mike T

適用した後:ツール>設定>グラフィック>バックエンド>自動カーネルを再起動するだけですenter image description here

そして、あなたはきっとInteractive Plotを手に入れるでしょう。ハッピーコーディング!

5
Archit Pandey

コメントで述べたように、問題はあなたの脚本にあります。実際には、2つの問題があります。

  • Matplotlibエラーがあります。引数をNoneとしてどこかに渡していると思います。たぶんdefaultdictのせい?
  • 各サブプロットの後にshow()を呼び出します。 show()はあなたのスクリプトの終わりに一度呼ばれるべきです。別の方法は対話モードを使うことです。matplotlibのドキュメントでionを探してください。
5