Seaborn sns.set()改变情节背景颜色

时间:2018-02-21 17:04:44

标签: 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()

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()

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

2 个答案:

答案 0 :(得分:3)

查看文档,似乎sns.set()版本中的called on import< 0.8。

调用sns.set而没有任何参数的原因会改变你的情节,因为它有一些默认参数。查看文档:

  

seaborn.set(context ='notebook',style ='darkgrid',palette ='deep',   font ='sans-serif',font_scale = 1,color_codes = False,rc = None)

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

答案 1 :(得分:0)

使用白色样式返回默认背景: sns.set(style='white')