Matplotlib AttributeError: module 'matplotlib.cbook' has no attribute '_define_aliases'

21,988

I had this exact error .The problem was that 2 packages of matplotlib was installed one by conda and one by pip

To test for this:

$ conda list matplotlib

matplotlib 2.0.2 np113py35_0 matplotlib 2.1.1

Problem! Fix:

$ pip uninstall matplotlib

Probably a good idea to force matplotlib upgrade to the version pip wanted:

$ conda install matplotlib=2.1.1

Share:
21,988
Daniel Wlazło
Author by

Daniel Wlazło

Robotics, ML (and pandas) enthusiast. Currently working in banking and insurance sector.

Updated on July 18, 2022

Comments

  • Daniel Wlazło
    Daniel Wlazło almost 2 years

    When trying to plot a graph on jupyter with pyplot I am running the following code:

    import matplotlib.pyplot as plt
    plt.plot([1,2,3,4])
    plt.ylabel('some numbers')
    plt.show()
    

    This is returning the following error:

    AttributeError                            Traceback (most recent call last)
    <ipython-input-16-51b004b519a9> in <module>()
    ----> 1 get_ipython().run_line_magic('matplotlib', 'inline')
          2 
          3 
          4 import matplotlib.pyplot as plt
          5 plt.plot([1,2,3,4])
    
    c:\program files (x86)\microsoft visual studio\shared\python36_64\lib\site-packages\IPython\core\interactiveshell.py in run_line_magic(self, magic_name, line, _stack_depth)
       2129                 kwargs['local_ns'] = sys._getframe(stack_depth).f_locals
       2130             with self.builtin_trap:
    -> 2131                 result = fn(*args,**kwargs)
       2132             return result
       2133 
    
    <decorator-gen-108> in matplotlib(self, line)
    
    c:\program files (x86)\microsoft visual studio\shared\python36_64\lib\site-packages\IPython\core\magic.py in <lambda>(f, *a, **k)
        185     # but it's overkill for just that one bit of state.
        186     def magic_deco(arg):
    --> 187         call = lambda f, *a, **k: f(*a, **k)
        188 
        189         if callable(arg):
    
    c:\program files (x86)\microsoft visual studio\shared\python36_64\lib\site-packages\IPython\core\magics\pylab.py in matplotlib(self, line)
         97             print("Available matplotlib backends: %s" % backends_list)
         98         else:
    ---> 99             gui, backend = self.shell.enable_matplotlib(args.gui)
        100             self._show_matplotlib_backend(args.gui, backend)
        101 
    
    c:\program files (x86)\microsoft visual studio\shared\python36_64\lib\site-packages\IPython\core\interactiveshell.py in enable_matplotlib(self, gui)
       3049                 gui, backend = pt.find_gui_and_backend(self.pylab_gui_select)
       3050 
    -> 3051         pt.activate_matplotlib(backend)
       3052         pt.configure_inline_support(self, backend)
       3053 
    
    c:\program files (x86)\microsoft visual studio\shared\python36_64\lib\site-packages\IPython\core\pylabtools.py in activate_matplotlib(backend)
        308     matplotlib.rcParams['backend'] = backend
        309 
    --> 310     import matplotlib.pyplot
        311     matplotlib.pyplot.switch_backend(backend)
        312 
    
    c:\program files (x86)\microsoft visual studio\shared\python36_64\lib\site-packages\matplotlib\pyplot.py in <module>()
         30 from cycler import cycler
         31 import matplotlib
    ---> 32 import matplotlib.colorbar
         33 import matplotlib.image
         34 from matplotlib import rcsetup, style
    
    c:\program files (x86)\microsoft visual studio\shared\python36_64\lib\site-packages\matplotlib\colorbar.py in <module>()
         28 import matplotlib.artist as martist
         29 import matplotlib.cbook as cbook
    ---> 30 import matplotlib.collections as collections
         31 import matplotlib.colors as colors
         32 import matplotlib.contour as contour
    
    c:\program files (x86)\microsoft visual studio\shared\python36_64\lib\site-packages\matplotlib\collections.py in <module>()
         17 
         18 import matplotlib as mpl
    ---> 19 from . import (_path, artist, cbook, cm, colors as mcolors, docstring,
         20                lines as mlines, path as mpath, transforms)
         21 
    
    c:\program files (x86)\microsoft visual studio\shared\python36_64\lib\site-packages\matplotlib\lines.py in <module>()
        206 
        207 
    --> 208 @cbook._define_aliases({
        209     "antialiased": ["aa"],
        210     "color": ["c"],
    
    AttributeError: module 'matplotlib.cbook' has no attribute '_define_aliases'
    

    My matplotlib has always worked fine without the jupyter. I have tried a complete reinstall of matplotlib, jupyter and python again since but still getting the same error. Maybe someone had the same problem?

  • sigurdb
    sigurdb about 4 years
    For me this was with networkx2.2 and matplotlib3.2.1, it was not enough having both on the conda side, I had to upgrade to networkx 2.4
  • Dataman
    Dataman about 4 years
    Was there a reason that you did not use conda uninstall matplotlib?
  • Jan
    Jan almost 4 years
    @Dataman because the package that should be removed is the one in pip. Only one matplotlib will be remained (which is the upgraded conda one)