web-dev-qa-db-fra.com

python seaborn pour réinitialiser le matplotlib

J'utilise Seaborn version o.4 et matplotlib version 1.42 J'ai un graphique qui affiche à la fois la ligne et le marqueur via une simple commande de tracé, par exemple.

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

En raison d'un bogue potentiel ( https://github.com/mwaskom/seaborn/issues/344 ), après l'importation seaborn, le même code affiche la ligne uniquement sans marqueur.

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

Ma question est donc la suivante: après l'importation de Seaborn, existe-t-il un moyen de réinitialiser tous les paramètres à leur valeur d'origine?

32
user3287545

Oui, appelez seaborn.reset_orig .

28
mwaskom

Pour rafraîchir les effets secondaires de configuration de Matplotlib souvent rencontrés avec Seaborn:

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

Lance ça:

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

Pour l'ancien code Python2:

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

Remarque: aucun des éléments suivants ne restaure correctement l'état de matplotlib:

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

Vous pouvez enregistrer le rcParams que vous voulez, avant de changer le style avec seaborn (notez que seaborn ne modifie plus le rcParams lors de l'importation):

import matplotlib as mpl

my_params = mpl.rcParams

# apply some change to the rcparams here

mpl.rcParams.update(my_params)

Notez que ces deux

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

restaure presque tous rcParams à leur valeur par défaut. Les quelques-uns qui seront différents peuvent être facilement visualisés par (je l'ai exécuté dans un cahier Jupyter):

# 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

et

# 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
joelostblom

Dans mon cas, je cherchais à réinitialiser les tailles de tracé de la sortie spécifiquement lorsque j'ai changé en utilisant l'attribut rc utilisé le code suivant pour réinitialiser à la taille par défaut sns.reset_defaults() (où sns est seaborn).

2
Eswar Chitirala