1. ホーム
  2. python

[解決済み] Pandasのプロットが表示されない

2022-10-16 03:36:52

質問

スクリプト(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を手動で呼び出すことなく ?

どのように解決するのですか?

プロットを作成したら、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 で、スクリプトではなく、対話的に実行されているからです。