熊猫情节没有显示

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

Even when adding time.sleep(5), there is still nothing. Why?

有办法吗,而不必手动调用 matplotlib

144928 次浏览

一旦你完成了你的绘图,你需要告诉 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 的后门,如下面的示例所示。我仍然建议分别导入 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中交互运行,而不是在脚本中。

如果您正在使用 matplotlib,,而且仍然,事情不显示在 iPython 笔记本电脑(或木星实验室以及)记住设置在笔记本中的 matplotlib内联选项。

import matplotlib.pyplot as plt


%matplotlib inline

然后,下面的代码将完美地工作:

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

If you don't set the inline option it won't show up and by adding a plt.show() in the end you will get duplicate outputs.

我只是

import matplotlib.pyplot as plt


%matplotlib inline

然后加线

plt.show()

在 df.plot ()旁边,它在以下情况下工作得很好

其他的解决方案包括导入 matplotlib.pyplot和/或手动调用第二个函数。

相反,您可以将 matplotlib配置为 interactive mode中的 配置文件

Simply add the line

interactive: True

to a file called matplotlibrc in one of the following places:

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