seaborn despine 在 Python 中覆盖了 matplotlib 中的字体设置
seaborn despine overrides font settings in matplotlib in Python
seaborn 库中的 despine
函数似乎覆盖了 matplotlib 中的字体设置参数。示例:
plt.figure()
plt.plot([1,2,3],[1,2,3])
plt.xticks([1,2,3], fontsize=13)
# despine blocks xtick labels font size
sns.despine(trim=True, offset=2)
plt.show()
如果我注释掉 sns.despine(trim=True, offset=2)
行,则 plt.xticks
的 fontsize
参数有效。如何使用 despine
而不覆盖我的字体大小设置?
尝试使用 rcParams
:
设置 xtick 字体大小
import matplotlib as mpl
plt.figure()
mpl.rcParams['xtick.labelsize'] = 13 # must be place before the actual plot creation
plt.plot([1,2,3],[1,2,3])
# despine blocks xtick labels font size
sns.despine(trim=True, offset=2)
plt.show()
这应该有效并且仍然正确应用 despine
。
这是我在向 seaborn 添加 spine trim/offsetting 功能时遇到的一个棘手问题。你可以在这里看到我原来的问题:
Efficiently cache and restore matplotlib axes parameters after moving spines
我们在 MPL 邮件列表的帮助下提出的解决方案如下:
https://github.com/mwaskom/seaborn/blob/dfdd1126626f7ed0fe3737528edecb71346e9eb0/seaborn/utils.py#L288
看起来这是我们的变通方法遗漏的边缘情况。
作为您的解决方法,我建议在格式化刻度之前 despining/offsetting:
%matplotlib inline
from matplotlib import pyplot
import seaborn
fig, ax = pyplot.subplots()
# despine blocks xtick labels font size
seaborn.despine(trim=True, offset=2)
x = [1, 2, 3]
ax.plot(x, x)
ax.set_xticks(x)
ax.set_xticklabels(x, fontsize=13)
seaborn 库中的 despine
函数似乎覆盖了 matplotlib 中的字体设置参数。示例:
plt.figure()
plt.plot([1,2,3],[1,2,3])
plt.xticks([1,2,3], fontsize=13)
# despine blocks xtick labels font size
sns.despine(trim=True, offset=2)
plt.show()
如果我注释掉 sns.despine(trim=True, offset=2)
行,则 plt.xticks
的 fontsize
参数有效。如何使用 despine
而不覆盖我的字体大小设置?
尝试使用 rcParams
:
import matplotlib as mpl
plt.figure()
mpl.rcParams['xtick.labelsize'] = 13 # must be place before the actual plot creation
plt.plot([1,2,3],[1,2,3])
# despine blocks xtick labels font size
sns.despine(trim=True, offset=2)
plt.show()
这应该有效并且仍然正确应用 despine
。
这是我在向 seaborn 添加 spine trim/offsetting 功能时遇到的一个棘手问题。你可以在这里看到我原来的问题:
Efficiently cache and restore matplotlib axes parameters after moving spines
我们在 MPL 邮件列表的帮助下提出的解决方案如下: https://github.com/mwaskom/seaborn/blob/dfdd1126626f7ed0fe3737528edecb71346e9eb0/seaborn/utils.py#L288
看起来这是我们的变通方法遗漏的边缘情况。
作为您的解决方法,我建议在格式化刻度之前 despining/offsetting:
%matplotlib inline
from matplotlib import pyplot
import seaborn
fig, ax = pyplot.subplots()
# despine blocks xtick labels font size
seaborn.despine(trim=True, offset=2)
x = [1, 2, 3]
ax.plot(x, x)
ax.set_xticks(x)
ax.set_xticklabels(x, fontsize=13)