熊猫情节没有显示

时间:2015-12-18 01:23:31

标签: python pandas matplotlib

在脚本(而不是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

4 个答案:

答案 0 :(得分:87)

一旦你制作了你的情节,你需要告诉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

最后,example you linked in comments不需要调用matplotlib的原因是因为它在iPython notebook中以交互方式运行,而不是在脚本中运行。

答案 1 :(得分:5)

如果你正在使用matplotlib,但仍然没有出现在iPython笔记本(或Jupyter Lab)中的内容,请记得在笔记本中为matplotlib设置内联选项。

import matplotlib.pyplot as plt

%matplotlib inline

然后以下代码将完美无瑕地运作:

fig, ax = plt.subplots(figsize=(16,9));
change_per_ins.plot(ax=ax, kind='hist')

如果您没有设置内联选项,它将无法显示,最后添加plt.show()您将获得重复输出。

答案 2 :(得分:0)

我刚刚

import matplotlib.pyplot as plt

%matplotlib inline

并添加行

plt.show()

df.plot()旁边,并且效果很好

答案 3 :(得分:0)

其他答案包括导入matplotlib.pyplot和/或手动调用某些第二个函数。

相反,您可以将matplotlib配置为其interactive modeconfiguration files中。

只需添加行

interactive: True

在以下位置之一进入名为matplotlibrc的文件:

  • 在当前工作目录中
  • matplotlib.get_configdir()指定的特定于平台的用户目录中
    • 在类似Unix的系统上,通常为/home/username/.config/matplotlib/
    • 在Windows C:\\Documents and Settings\\username\\.matplotlib\\