seaborn set_style函数中的某些dict属性不起作用

时间:2020-09-26 06:28:53

标签: python matplotlib seaborn

X = np.arange(20)
y = np.log(X**2)

# set title in Chinese
plt.title('你好')

sns.set_style({'axes.facecolor':'red','font.sans-serif':['SimSun']})
sns.lineplot(X,y,color="blue")

当我第一次在Jupyter中运行此代码时,标题可以正确显示,这意味着font.sans-serif属性运行良好,但背景色不是红色。
但是当我第二次再次运行相同代码时,axes.facecolor属性起作用,背景颜色变为红色。
这让我感到困惑,为什么会这样呢?还有其他这样的属性吗?

1 个答案:

答案 0 :(得分:0)

根据seaborn style aesthetics configuration tutorial,本地样式控制应使用(例如)完成:

with sns.axes_style("darkgrid"):
    sns.lineplot(X,y,color="blue")

对于全局设置,请在任何绘图语句之前使用sns.set_style(...) ,以便将其考虑在内。这就是为什么您必须在Jupyter中启动两次才能生效。导入后立即为它指定一个单元格可能是一个更好的解决方案。