Pandasプロットが表示されない質問する

Pandasプロットが表示されない質問する

これをスクリプト (IPython ではない) で使用すると、何も起こりません。つまり、プロット ウィンドウは表示されません。

import numpy as np
import pandas as pd
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts.plot()

を追加してもtime.sleep(5)何も表示されません。なぜでしょうか?

それを実行する方法はあるでしょうか、matplotlibを手動で呼び出す必要がなく?

ベストアンサー1

プロットを作成したら、matplotlib にshowそれを指示する必要があります。通常の方法は、そこからインポートしmatplotlib.pyplotて呼び出すことです。show

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts.plot()
plt.show()

の古いバージョンではpandas、以下の例のように、matplotlib へのバックドアを見つけることができました。注: これは最新バージョンでは機能しませんpandas上記の例のように、matplotlib を個別にインポートすることをお勧めします。

import numpy as np
import pandas as pd
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts.plot()
pd.tseries.plotting.pylab.show()

しかし、ここで行っていることは、matplotlibにインポートされた場所を見つけて、そこからpandas同じ関数を呼び出すことだけです。show

matplotlib処理を高速化するために、 の呼び出しを避けようとしていますか? もしそうなら、pandasすでにインポートされているため、実際には何も高速化されていませんpyplot:

python -mtimeit -s 'import pandas as pd'
100000000 loops, best of 3: 0.0122 usec per loop

python -mtimeit -s 'import pandas as pd; import matplotlib.pyplot as plt'
100000000 loops, best of 3: 0.0125 usec per loop

最後に、コメントでリンクした例はスクリプトではなく でmatplotlib対話的に実行されるため、の呼び出しは必要ありません。iPython notebook

おすすめ記事