Після того, як ви склали свою змову, вам потрібно повідомити 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]:
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сценарії, а не в сценарії.
ts.plot()?