Как восстановить значения по умолчанию для matplotlib после настройки таблицы стилей

В записной книжке ipython я использовал таблицу стилей matplotlib, чтобы изменить внешний вид своих графиков, используя

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

Моя версия matplotlib - 1.4.0. Как мне вернуться к стилю по умолчанию для matplotlib? Я перепробовал все доступные стили в

print style.available 

но, кажется, нет опции по умолчанию. Я тоже пробовал

matplotlib.rcdefaults() 

По какой-то причине это дает мне серый фон. Он также изменяет текст с серого (стиль ggplot) на черный, который может быть по умолчанию, но также может быть другим случайным стилем.

1 ответ

Решение

Вы должны быть в состоянии установить его обратно по умолчанию:

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 клеточная магия в этом примере, и использовать ее позже.

На самом деле есть default. Но его нет в спискеplt.style.available. Просто запустите:

plt.style.use('default')

Он возвращает стиль к настройкам Matplotlib по умолчанию, например, в Jupyter Notebook.

Добавляя к ответу 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]}

Вы можете использовать это для точной настройки ваших графиков.

Другие вопросы по тегам