【问题标题】:How to recover matplotlib defaults after setting stylesheet设置样式表后如何恢复 matplotlib 默认值
【发布时间】:2014-12-12 08:07:31
【问题描述】:

在 ipython 笔记本中,我使用 matplotlib 样式表来更改绘图的外观

from matplotlib.pyplot import *
%matplotlib inline
style.use('ggplot')

我的 matplotlib 版本是 1.4.0。如何回到默认的 matplotlib 样式?我尝试了所有可用的样式

print style.available 

但似乎没有“默认”选项。我也试过了

matplotlib.rcdefaults() 

由于某种原因,这给了我一个灰色的背景。它还将文本从灰色(ggplot 样式)更改为黑色,这可能是默认样式,但也可能是另一种随机样式。

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    除了answer by CT Zhuinlinematplotlib 默认值之间的区别是(对于每个不同的项目,都会给出一个包含相应值的列表):

    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]}
    

    您可以使用它来微调您的绘图。

    【讨论】:

      【解决方案2】:

      实际上有一个default。但它没有在plt.style.available 下列出。只需运行:

      plt.style.use('default')
      

      它将样式返回到默认的 Matplotlib 设置,例如 Jupyter Notebook。

      【讨论】:

        【解决方案3】:

        您应该能够通过以下方式将其设置回默认值:

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

        ipython 中,情况有些不同,尤其是inline 后端:

        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>]
        

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

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

        基本上,%matplotlib inline 使用自己的rcParams。您可以从源代码中获取它,但可以说更简单的方法可能只是在此示例中将 rcParams 保存为 inline_rc 之后的 %matplotlib inline 单元魔术,然后再使用它。

        【讨论】:

        • 这与我尝试 matplotlib.rcdefaults() 时的结果相同。设置样式表会改变默认参数吗?
        • 你在用ipython%matplotlib inline吗?
        • 是的,我正在使用ipython %matplotlib inline
        • 实际上,我正在使用 ipython notebook%matplotlib inline - 以防万一
        • 是的,这有很大的不同。 inline 细胞魔法使用不同的rcParams
        猜你喜欢
        • 2011-05-17
        • 2020-07-09
        • 1970-01-01
        • 2018-02-12
        • 1970-01-01
        • 1970-01-01
        • 2012-09-03
        • 2014-04-04
        • 2021-10-07
        相关资源
        最近更新 更多