How to suppress matplotlib warning?

前端 未结 5 1939
借酒劲吻你
借酒劲吻你 2020-12-01 14:22

I am getting an warning from matplotlib every time I import pandas:

/usr/local/lib/python2.7/site-packages/matplotlib/__init__.py:8         


        
相关标签:
5条回答
  • 2020-12-01 14:23

    If you are using the logging module, try this: logging.getLogger('matplotlib').setLevel(level=logging.CRITICAL)

    0 讨论(0)
  • 2020-12-01 14:37

    You can suppress all warnings:

    import warnings
    warnings.filterwarnings("ignore")
    
    import pandas
    
    0 讨论(0)
  • 2020-12-01 14:39

    You can either suppress the warning messages as suggested by AndreL or you can resolve this specific issue and stop getting the warning message once and for all. If you want the latter, do the following.

    Open your matplotlibrc file and search for axes.color_cycle. If you're getting the warning message it means that your matplotlibrc file should show something like this:

    axes.color_cycle : b, g, r, c, m, y, k  # color cycle for plot lines
    

    You should replace that line by this:

    axes.prop_cycle : cycler('color', ['b', 'g', 'r', 'c', 'm', 'y', 'k'])
    

    And the warning message should be gone.

    0 讨论(0)
  • 2020-12-01 14:44

    Downgrade to matplotlib 1.4.3 the previous stable version.

    0 讨论(0)
  • 2020-12-01 14:49

    You can suppress the warning UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter. by using prop_cycle at the appropriate place.

    For example, in the place you had used color_cycle:

    matplotlib.rcParams['axes.color_cycle'] = ['r', 'k', 'c']
    

    Replace it with the following:

    matplotlib.rcParams['axes.prop_cycle'] = mpl.cycler(color=["r", "k", "c"]) 
    

    For a greater glimpse, here is an example:

    import matplotlib.pyplot as plt
    import matplotlib as mpl
    import numpy as np
    
    mpl.rcParams['axes.prop_cycle'] = mpl.cycler(color=["r", "k", "c"]) 
    
    x = np.linspace(0, 20, 100)
    
    fig, axes = plt.subplots(nrows=2)
    
    for i in range(10):
        axes[0].plot(x, i * (x - 10)**2)
    
    for i in range(10):
        axes[1].plot(x, i * np.cos(x))
    
    plt.show()
    

    0 讨论(0)
提交回复
热议问题