python seaborn重置回matplotlib

use*_*545 32 python matplotlib marker seaborn

我正在使用seaborn版本o.4和matplotlib版本1.42我有一个图表通过简单的绘图命令显示行和标记,例如.

plt.plot([1,5,3,8,4],'-bo');
Run Code Online (Sandbox Code Playgroud)

由于潜在的错误(https://github.com/mwaskom/seaborn/issues/344),在导入seaborn之后,相同的代码仅显示没有标记的行.

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

所以我的问题是:在导入seaborn之后,有没有办法将所有参数重置回原始状态?

mwa*_*kom 28

是的,打电话seaborn.reset_orig.

  • 这种类型的工作,但在`import seaborn`和`seaborn.reset_orig()`之后制作的图仍然看起来与在这些行之前制作的图完全不同.有没有办法摆脱所有的seaborn效果,好像它从未被导入过? (13认同)

小智 22

这些解决方案都不适合我(Python 3.x、Jupyter)。有效的是matplotlib.rc_file_defaults()

请参阅此处的文档:https : //matplotlib.org/3.1.1/api/matplotlib_configuration_api.html#matplotlib.rc_file_defaults

  • 这个解决方案适用于 Python 3。`seaborn.reset_orig` 不起作用。 (3认同)

Joe*_*ant 7

要刷新Seporn经常遇到的Matplotlib的配置副作用:

import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
Run Code Online (Sandbox Code Playgroud)

运行这个:

import importlib
importlib.reload(mpl); importlib.reload(plt); importlib.reload(sns)
Run Code Online (Sandbox Code Playgroud)

对于旧的Python2代码:

import imp
imp.reload(mpl); imp.reload(plt); imp.reload(sns)
Run Code Online (Sandbox Code Playgroud)

注意:以下任何一项都无法正确恢复matplotlib的状态:

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

  • 对于在不久的将来阅读本文的任何人:我在 Jupyter 中使用了几种不同版本的 matplotlib 和 seaborn 进行了尝试,但无法使其正常工作,我认为这不是通用解决方案(也许曾经是)。 (3认同)

小智 6

就我而言,我正在寻找重置输出的绘图大小,特别是当我使用属性进行更改时,rc使用以下代码重置为默认大小sns.reset_defaults()(其中 sns 是seaborn)。


joe*_*lom 5

您可以rcParams在使用seaborn更改样式之前保存您想要的内容(请注意,seaborn在导入时不再更改rcParams):

import matplotlib as mpl

my_params = mpl.rcParams

# apply some change to the rcparams here

mpl.rcParams.update(my_params)
Run Code Online (Sandbox Code Playgroud)

请注意,这两个

mpl.rcParams.update(mpl.rcParamsOrig)
mpl.rcParams.update(mpl.rcParamsDefault)
Run Code Online (Sandbox Code Playgroud)

将几乎所有内容恢复rcParams为默认值。少数几个不同的可以很容易地查看(我在 Jupyter Notebook 中运行了这个):

# 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
Run Code Online (Sandbox Code Playgroud)

# 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
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以通过执行以下操作将它们设置回默认值:

import matplotlib as mpl
mpl.rcParams.update(mpl.rcParamsDefault)
Run Code Online (Sandbox Code Playgroud)

另外,请查看Jake VanderPlas 的这篇文章,了解有关自定义 matplotlib 的更多信息。

希望能帮助到你!