Pandas 情节不显示

问题描述 投票:0回答:5

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

python pandas matplotlib
5个回答
230
投票

一旦你完成了你的绘图,你需要告诉 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
中交互运行,而不是在脚本中。


8
投票

如果您使用

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
投票

我刚刚做了

import matplotlib.pyplot as plt

%matplotlib inline

并添加行

plt.show()

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


0
投票

其他答案涉及导入

matplotlib.pyplot
和/或手动调用第二个函数。

相反,您可以使用其

配置文件
matplotlib 配置为交互模式

只需添加行

interactive: True

到位于以下位置之一的名为

matplotlibrc
的文件:

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

0
投票

您可以通过将参数作为内联传递给 %matplotlib magic 命令来更改 Matplotlib 后端

内联后端在 Jupyter Notebooks 中很受欢迎,因为它在笔记本本身中显示绘图,紧邻创建绘图的单元格下方:

%matplotlib inline

© www.soinside.com 2019 - 2024. All rights reserved.