如何在设置样式表后恢复matplotlib默认值
在一个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的回答基础上,inline
和matplotlib
的默认设置之间的区别是(对于每一个不同的项目,都会列出相应的值):
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
,然后以后再使用它。