Seaborn sns.set()更改绘图背景颜色

mgi*_*ert 3 python seaborn

在seaborn中使用sns.set()似乎正在改变情节的背景颜色。

import matplotlib
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd


df = pd.DataFrame({"type":["A", "A", "A", "A", "B", "B", "B", "B"],
                   "value":[11, 14, 13, 16, 9, 8, 6, 10],
                  "date":["t1", "t2", "t3", "t4", "t1", "t2", "t3", "t4"]})

grid = sns.FacetGrid(df, size=12.5, hue="type", aspect=2)
grid.map(plt.plot, "date", "value")
plt.show()
Run Code Online (Sandbox Code Playgroud)

seaborn1

然后,如果我运行sns.set(font_scale=2)(或仅运行sns.set()),重复得到相同的图

grid = sns.FacetGrid(df, size=12.5, hue="type", aspect=2)
grid.map(plt.plot, "date", "value")
plt.show()
Run Code Online (Sandbox Code Playgroud)

seaborn2

在我看来,这似乎有些奇怪。我希望使用第二种绘图配置,但希望获得它而不必对进行任意调用sns.set(),除非当然是推荐的方法。

相关版本信息

print("matplotlib version: %s" % matplotlib.__version__)
print("seaborn version: %s" % sns.__version__)

matplotlib version: 2.1.0
seaborn version: 0.8.0
Run Code Online (Sandbox Code Playgroud)

Dav*_*idG 5

综观文档,似乎sns.set()要求进口的版本<0.8。

sns.set不带任何参数调用会更改图的原因是它具有一些默认参数。查看文档:

seaborn.set(上下文='笔记本',样式='darkgrid',调色板='深',字体='sans-serif',font_scale = 1,color_codes = False,rc =无)

因此,使用sns.set(font_scale=2)会更改字体比例,但也会将其他所有内容更改为的默认参数sns.set