导入seaborn停止设置rc_params工作

时间:2017-06-16 21:09:51

标签: python matplotlib seaborn

当我运行下面的代码时,如果导入seaborn的行被注释掉,它可以很好地工作,可以在函数中设置fontsize并在整个绘图中设置它(我用它来处理一个更复杂的函数,有几个子图和轴,并希望通用字体设置)。为什么seaborn阻止我的with plt.rc_context({'font.size': fontsize,}):工作?我怎么能阻止它这样做,同时仍然能够利用seaborn的功能? (如果解决方案涉及删除那些,我不需要它的样式默认值)

import matplotlib.pyplot as plt
import numpy as np
import seaborn

def plotthing(x, y, fontsize=8):
    with plt.rc_context({'font.size': fontsize,}):
        fig, ax = plt.subplots()
        ax.plot(x, y)
        ax.set_xlabel("x")
        ax.set_xlabel("y")
    return fig, ax

x = np.arange(0, 10)
y = 2*x**2

fig, ax = plotthing(x, y, fontsize=2)
fig.savefig("test.pdf")

2 个答案:

答案 0 :(得分:1)

我通过添加

解决了这个问题
# reset RC params to original
sns.reset_orig()

我导入seaborn以撤消它对matplotlib的rc params的更改

答案 1 :(得分:1)

如果您不希望seaborn进行任何样式更改,您可以单独导入seaborn API:

import seaborn.apionly as sns

在问题的情况下,这也可以正常工作。