/ / python seaborn zresetować z powrotem do matplotlib - python, matplotlib, marker, seaborn

python seaborn, aby zresetować z powrotem do matplotlib - python, matplotlib, marker, seaborn

Używam wersji Seaborn o.4 i wersji Matplotlib 1.42 Mam wykres wyświetlający zarówno linię, jak i znacznik poprzez proste polecenie wydruku, np.

plt.plot([1,5,3,8,4],"-bo");

Ze względu na potencjalny błąd (https://github.com/mwaskom/seaborn/issues/344), po importowaniu seaborn, ten sam kod pokazuje tylko linię bez znacznika.

import seaborn as sb
plt.plot([1,5,3,8,4],"-bo");

Więc moje pytanie brzmi: po zaimportowaniu seaborn, Czy istnieje sposób na zresetowanie wszystkich parametrów z powrotem do oryginału?

Odpowiedzi:

16 dla odpowiedzi nr 1

Tak, zadzwoń seaborn.reset_orig.


4 dla odpowiedzi nr 2

Aby odświeżyć efekty uboczne konfiguracji Matplotlib często spotykane w Seaborn:

import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn.apionly as sns

Uruchom to:

import importlib
importlib.reload(mpl); importlib.reload(plt); importlib.reload(sns)

Dla starego kodu Python2:

import imp
imp.reload(mpl); imp.reload(plt); imp.reload(sns)

Uwaga: Żadna z poniższych popraw poprawnie nie przywraca stanu matplotlib:

  • sns.reset_orig ()
  • sns.reset_defaults ()
  • mpl.rcParams.update (mpl.rcParamsDefault)

1 dla odpowiedzi nr 3

Możesz zapisać rcParams chcesz, zanim zmienisz styl z seabornem (zauważ, że seaborn już nie zmienia rcParams przy imporcie):

import matplotlib as mpl

my_params = mpl.rcParams

# apply some change to the rcparams here

mpl.rcParams.update(my_params)

Zauważ, że oba te

mpl.rcParams.update(mpl.rcParamsOrig)
mpl.rcParams.update(mpl.rcParamsDefault)

przywraca prawie wszystko rcParams do ich domyślnej wartości. Nieliczne, które będą różne, można łatwo przejrzeć (uruchomiłem to w Notatniku Jupera):

# Differences between current params and `Default`
for key in mpl.rcParamsDefault:
if not mpl.rcParamsDefault[key] == mpl.rcParams[key]:
print(key, mpl.rcParamsDefault[key], mpl.rcParams[key])

## backend agg module://ipykernel.pylab.backend_inline
## figure.dpi 100.0 72.0
## figure.edgecolor w (1, 1, 1, 0)
## figure.facecolor w (1, 1, 1, 0)
## figure.figsize [6.4, 4.8] [6.0, 4.0]
## figure.subplot.bottom 0.11 0.125

i

# Differences between `Default` and `Orig`
for key in mpl.rcParamsDefault:
if not mpl.rcParamsDefault[key] == mpl.rcParamsOrig[key]:
print(key, mpl.rcParamsDefault[key], mpl.rcParamsOrig[key])

## backend agg Qt5Agg

-2 dla odpowiedzi № 4

Można po prostu zadzwonić seaborn.set() funkcja, bez parametrów funkcji, patrz [seaborn tutorial][1].