如何在设置样式表后恢复matplotlib默认值

83 投票
3 回答
74540 浏览
提问于 2025-04-28 00:31

在一个ipython笔记本中,我使用了matplotlib的样式表来改变我的图表外观,使用了

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

我现在用的matplotlib版本是1.4.0。我该怎么才能回到默认的matplotlib样式呢?我试过所有在

print style.available 

里的可用样式,但似乎没有“默认”选项。我还试过

matplotlib.rcdefaults() 

但不知道为什么,这样做让我得到了一个灰色的背景。它还把文字从灰色(ggplot样式)变成了黑色,这可能是默认的样式,但也可能是其他随机样式。

暂无标签

3 个回答

2

在CT Zhu的回答基础上,inlinematplotlib的默认设置之间的区别是(对于每一个不同的项目,都会列出相应的值):

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

你可以用这个来微调你的图表。

57

其实是有一个 default 的样式。但是它并没有在 plt.style.available 这个列表里。你只需要运行下面的代码:

plt.style.use('default')

这样就可以把样式恢复到 Matplotlib 的默认设置,比如在 Jupyter Notebook 里。

107

你可以通过以下方式将其恢复到默认设置:

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。你可以从源代码中获取这些设置,但更简单的方法可能是,在这个例子中,在执行 %matplotlib inline 的时候,把 rcParams 保存为 inline_rc,然后以后再使用它。

撰写回答