私はIPythonを--pylab=inline
で使用しており、プロットを表示するために、インタラクティブでズーム可能なmatplotlib GUI(端末Pythonコンソールで何かをプロットするときにポップアップするGUI)にすばやく切り替えたい場合があります。どうすればそれができますか?ノートブックを離れたり、再起動したりしないでください.
IPyノートブックのインラインプロットの問題は、それらの解像度が限られていることと、いくつかの小さな部品を見るためにズームインできないことです。ターミナルから起動するmaptlotlib GUIを使用して、拡大したいグラフの長方形を選択し、それに応じて軸を調整できます。試した
from matplotlib import interactive
interactive(True)
そして
interactive(False)
しかし、それは何もしませんでした。オンラインでもヒントを見つけることができませんでした。
ドキュメント によると、次のように切り替えることができるはずです。
In [2]: %matplotlib inline
In [3]: plot(...)
In [4]: %matplotlib qt # wx, gtk, osx, tk, empty uses default
In [5]: plot(...)
通常のプロットウィンドウがポップアップ表示されます(ノートブックでの再起動が必要になる場合があります)。
これがお役に立てば幸いです。
インラインプロットからインタラクティブなプロットに切り替えて(パン/ズームできるように)するだけの場合は、%matplotlibマジックを使用することをお勧めします。
#interactive plotting in separate window
%matplotlib qt
そしてhtmlに戻る
#normal charts inside notebooks
%matplotlib inline
%pylab magicは他の多くのものをインポートし、競合を引き起こすことさえあります。 「from pylab import *」を実行します。
新しいノートブックバックエンド(matplotlib 1.4で追加)も使用できます。
#interactive charts inside notebooks, matplotlib 1.4+
%matplotlib notebook
チャートでよりインタラクティブな機能を使用したい場合は、mpldおよびbokehをご覧ください。トンのデータポイント(たとえば<5k +)がなく、通常のmatplotlib構文を使用したいが、%matplotlibノートブックと比較してよりインタラクティブな場合、mpld3は素晴らしいです。 Bokehは多くのデータを処理できますが、別個のライブラリであるため、構文を学習する必要があります。
また、pivottablejs(pip install pivottablejs)をチェックアウトできます。
from pivottablejs import pivot_ui
pivot_ui(df)
どんなに優れたインタラクティブなデータ探索であっても、完全に再現性を損なう可能性があります。それは私に起こったので、私は非常に早い段階でのみそれを使用し、データの感覚を得た後、純粋なインラインmatplotlib/seabornに切り替えようとします。
Matplotlib 1.4.0以降、ノートブックで使用するためのインタラクティブなバックエンドがあります。
%matplotlib notebook
エイリアスが登録されていないIPythonのバージョンがいくつかありますが、フォールバックは次のとおりです。
%matplotlib nbagg
うまくいかない場合は、IPythonを更新してください。
これで遊ぶには、goto tmpnb.org
そして貼り付け
%matplotlib notebook
import pandas as pd
import numpy as np
import matplotlib
from matplotlib import pyplot as plt
import seaborn as sns
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts = ts.cumsum()
df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index,
columns=['A', 'B', 'C', 'D'])
df = df.cumsum()
df.plot(); plt.legend(loc='best')
コードセルに(または既存のpythonデモノートブックを変更するだけ)
私は、5/28/20117のwww.continuum.io/downloadsで、Anacondaの「jupyter QTConsole」でipythonを使用しています。
Ipythonマジックを使用して、個別のウィンドウとインラインプロットモードを切り替える例を次に示します。
>>> import matplotlib.pyplot as plt
# data to plot
>>> x1 = [x for x in range(20)]
# Show in separate window
>>> %matplotlib
>>> plt.plot(x1)
>>> plt.close()
# Show in console window
>>> %matplotlib inline
>>> plt.plot(x1)
>>> plt.close()
# Show in separate window
>>> %matplotlib
>>> plt.plot(x1)
>>> plt.close()
# Show in console window
>>> %matplotlib inline
>>> plt.plot(x1)
>>> plt.close()
# Note: the %matplotlib magic above causes:
# plt.plot(...)
# to implicitly include a:
# plt.show()
# after the command.
#
# (Not sure how to turn off this behavior
# so that it matches behavior without using %matplotlib magic...)
# but its ok for interactive work...
問題のより良い解決策は、 Charts ライブラリです。優れた Highcharts javascriptライブラリを使用して、美しくインタラクティブなプロットを作成できます。 HighchartsはHTMLのsvg
タグを使用するため、すべてのチャートは実際にはベクター画像です。
いくつかの機能:
免責事項:私はライブラリの開発者です