Python 熊猫图不';不显示

Python 熊猫图不';不显示,python,pandas,matplotlib,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的方法呢?一旦你完成了绘图,你需要告

在脚本(不是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显示它。通常的方法是导入
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()
但是,您在那里所做的只是找到已在
pandas
中导入的
matplotlib
,并从那里调用相同的
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笔记本中以交互方式运行的,而不是在脚本中运行的。

如果您使用
matplotlib,
,但iPython笔记本(或Jupyter实验室)中仍然没有显示内容记住在笔记本中为
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()
,最终将获得重复的输出

我刚才

import matplotlib.pyplot as plt

%matplotlib inline
并添加行

plt.show()

在df.plot()旁边,它对

很有效,其他答案包括导入
matplotlib.pyplot
和/或手动调用第二个函数

相反,您可以将
matplotlib
配置为与its一起使用

只需添加行

interactive:True

到名为
matplotlibrc
的文件的以下位置之一:

  • 在当前工作目录中
  • 在由
    matplotlib.get\u configdir()
    • 在类unix系统上,通常是
      /home/username/.config/matplotlib/
    • 在Windows上
      C:\\Documents and Settings\\username\\.matplotlib\\

您是否从
ts.plot()
获得任何输出?您所说的“手动调用matplotlib”是什么意思?通常的方法是
import matplotlib.pyplot as plt
plt.show()
@itzy:当
ts.plot()
时,程序将立即终止。即使我加上
time.sleep(10)
displayed@maxymoo:我认为在panda对象上执行
.plot()
可以为我处理所有事情(即panda执行matplotlib作业,而不是我):请看。当我运行“pd.tseries.plotting.pylab.show()”时,我得到“padnas.tseries”没有属性打印,是否过时?你是在2015年写的……是的,matplotlib的后门似乎已经不存在了。我还是推荐第一种选择谢谢。我认为API的设计会更好。奇怪的是,我们需要了解matplotlib才能使用panda.Plot请包括您使用的环境,以便能够插入
%matplotlib inline
(这不是可以在脚本中使用的标准Python)。
%matplotlib inline
用于ipython/jupyter笔记本…是的,如果您使用的是像pycharm这样的IDE(我一直在使用它),则无需添加%matplotlib内联。