Pandas ImportError: 需要matplotlib进行绘图。

28

Pandas无法识别已安装的matplotlib库。

这是代码

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts = ts.cumsum()
ts.plot()

错误是

c:\users\xxxxx\appdata\local\programs\python\python36\lib\site-packages\pandas\plotting\_core.py in _raise_if_no_mpl()
     55     # TODO(mpl_converter): remove once converter is explicit
     56     if not _HAS_MPL:
---> 57         raise ImportError("matplotlib is required for plotting.")
     58 
     59    
ImportError: matplotlib is required for plotting.

您还没有创建任何图形对象。 - Sheldore
在Jupyter上它运行良好。 - CezarySzulc
我在Jupyter Notebook上尝试了这个。它不起作用。@Cezary.Sz - Nishat21
1
在Jupyter中,我需要添加“import pandas”并生成绘图。@Erza - CezarySzulc
请检查这种方式:https://stackoverflow.com/a/43422345/7245145 - Steffi Keran Rani J
显示剩余3条评论
6个回答

26

在重新安装pandas之前先安装matplotlib使它能够正常工作。


4
Jupyter笔记本:安装matplotlib。重启内核。在导入pandas之前先导入matplotlib。从matplotlib中导入pyplot模块,代码为:from matplotlib import pyplot as plt; %matplotlib inline - LMSharma

19

我在Jupyter Lab中遇到了同样的错误。解决方案是(在安装matplotlib之后):

点击工具栏中的重启内核按钮;

或者

选择菜单项Kernel=>重启内核并运行所有单元格...,然后在确认对话框中点击重启

完成


11

你需要安装 matplotlib 才能做那件事。

你可以在Python shell中输入并运行以下命令来安装matplotlib。

python3 -mpip install matplotlib
如果您正在使用Anaconda IDE,您可以在Conda命令提示符中运行以下命令。
conda install matplotlib

安装完成后,请重新运行程序。

请参考此页面安装matplotlib。


我已经安装了matplotlib。但是pandas无法识别它。 - Nishat21

11

你只需要在安装完matplotlib后退出Pandas,并重新启动它。这样它就能看到新的安装内容了,不需要重新安装Pandas。


2
如果您正在使用 Jupyter Notebook,则需要转到主控制台中的 Running 选项卡,然后按下需要使用 .plot 的笔记本电脑的 Shutdown 按钮。在所需环境中安装 matplotlib 后,需要执行此步骤。 - bosch

6

只需在您的终端中运行以下命令即可安装matplotlib:

pip install matplotlib

0
我发现的是pandas使用importlib进行自己的导入,并隐藏与导入matplotlib无关的问题。
实际上,很可能发生的是您的pandas和matplotlib版本不匹配。在我的情况下,我有一个旧的Pandas 1.3.5和matplotlib 3.5.1,将matplotlib降级到3.3.0就可以解决问题。
因此,重装matplotlib并不重要,重要的是重新安装正确的版本。
您可以通过运行pandas代码来进行测试。
import importlib
importlib.load_module("pandas.plotting._matplotlib")

然后查看弹出的错误类型,进而被作为 ImportError 捕获,因为它在 try except 块中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接