无法在我的程序中使用matplotlib函数

时间:2017-11-30 10:54:12

标签: python matplotlib anaconda

我在Windows 10(conda版本4.3.8)中运行Anaconda安装

这是我尝试在python命令行中运行的代码:

import matplotlib.pyplot as plt
x = [1,2,3,4]
y = [5,6,7,8]
plt.figure(1)
plt.plot(x,y)

最后一行引发以下错误:

C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\font_manager.py:971: MatplotlibDeprecationWarning: The is_string_like function was deprecated in version 2.1.
if is_string_like(family):
C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\font_manager.py:697: MatplotlibDeprecationWarning: The is_string_like function was deprecated in version 2.1.
if is_string_like(family):
C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\text.py:218: MatplotlibDeprecationWarning: The is_string_like function was deprecated in version 2.1.
elif is_string_like(fontproperties):
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\pyplot.py", line 3307, in plot
  ax = gca()
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\pyplot.py", line 950, in gca
  return gcf().gca(**kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\figure.py", line 1368, in gca
  return self.add_subplot(1, 1, 1, **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\figure.py", line 1020, in add_subplot
  a = subplot_class_factory(projection_class)(self, *args, **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\axes\_subplots.py", line 73, in __init__
  self._axes_class.__init__(self, fig, self.figbox, **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 529, in __init__
  self._init_axis()
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 622, in _init_axis
  self.xaxis = maxis.XAxis(self)
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\axis.py", line 676, in __init__
  self.cla()
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\axis.py", line 760, in cla
  self.reset_ticks()
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\axis.py", line 771, in reset_ticks
  cbook.popall(self.majorTicks)
AttributeError: module 'matplotlib.cbook' has no attribute 'popall'

我在根环境中运行此操作此处也是conda list

输出的一部分

enter image description here

matplotlib的多个版本是否会导致这种情况?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

尝试将matplotlib.pyplot与最新版本的matplotlib(通过Anaconda发行版更新)一起使用时,我得到了一个非常类似的错误。错误似乎在根python版本和Anaconda发行版之间,因为以下解决了问题:

  • 使用pip卸载matplotlib:&#34; pip uninstall matplotlib&#34;
  • 使用conda卸载matplotlib:&#34; conda uninstall matplotlib&#34;
  • 使用conda安装matplotlib:&#34; conda install matplotlib&#34;

matplotlib的多个版本似乎确实存在问题。这是从以下信息(以屏幕截图的形式提供)推断出来的:

conda uninstall matplotlib

pip uninstall matplotlib

请注意两个屏幕截图中提到的matplotlib版本。希望这有帮助!

答案 1 :(得分:0)

这也是由networkx和matplotlib之间的版本不匹配引起的。只需卸载所有版本的matplotlib和networkx:

sudo pip3 uninstall networkx
sudo pip3 uninstall matplotlib
python3 -mpip uninstall matplotlib
sudo conda uninstall matplotlib

如果您通过mpip或conda等其他来源安装了networkx,也请卸载它们。

然后安装它们:

sudo pip3 install networkx
sudo pip3 install matplotlib

现在程序可以运行了。