How to recover matplotlib defaults after setting stylesheet

前端 未结 3 1348
遥遥无期
遥遥无期 2020-12-04 13:20

In an ipython notebook, I used a matplotlib stylesheet to change the look of my plots using

from matplotlib.pyplot import *
%matplotlib inline
style.use(\'g         


        
相关标签:
3条回答
  • 2020-12-04 13:29

    Adding to the answer by CT Zhu, the differences between the inline and matplotlib defaults are (for each item that is different, a list with the to respective values is given):

    inline_default_rc = dict(mpl.rcParams)
    default_rc = dict(mpl.rcParamsDefault)
    print( {k:[v,default_rc[k]] for k,v in inline_default_rc.items() if v != default_rc[k]} )
    
    {'figure.dpi': [72.0, 100.0], 'figure.edgecolor': [(1, 1, 1, 0), 'white'], 'figure.facecolor': [(1, 1, 1, 0), 'white'], 'figure.figsize': [[6.0, 4.0], [6.4, 4.8]], 'figure.subplot.bottom': [0.125, 0.11], 'interactive': [True, False]}
    

    You can use this to fine tune your plots.

    0 讨论(0)
  • 2020-12-04 13:37

    There actually is a default. But it's not listed under plt.style.available. Simply run :

    plt.style.use('default')
    

    It returns the style to the default Matplotlib settings in, for instance, Jupyter Notebook.

    0 讨论(0)
  • 2020-12-04 13:51

    You should be able to set it back to default by:

    import matplotlib as mpl
    mpl.rcParams.update(mpl.rcParamsDefault)
    

    In ipython, things are a little different, especially with inline backend:

    In [1]:
    
    %matplotlib inline
    In [2]:
    
    import matplotlib as mpl
    import matplotlib.pyplot as plt
    In [3]:
    
    inline_rc = dict(mpl.rcParams)
    In [4]:
    
    plt.plot(range(10))
    Out[4]:
    [<matplotlib.lines.Line2D at 0x72d2510>]
    

    enter image description here

    In [5]:
    
    mpl.rcParams.update(mpl.rcParamsDefault)
    plt.plot(range(10))
    Out[5]:
    [<matplotlib.lines.Line2D at 0x7354730>]
    

    enter image description here

    In [6]:
    
    mpl.rcParams.update(inline_rc)
    plt.plot(range(10))
    Out[6]:
    [<matplotlib.lines.Line2D at 0x75a8e10>] 
    

    enter image description here

    Basically, %matplotlib inline uses its own rcParams. You can grab that from the source, but the arguably easier way is probably just save the rcParams as inline_rc after %matplotlib inline cell magic in this example, and reuse that later.

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