#python #matplotlib #seaborn
#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
, что свойство сработало хорошо, но backgroundcolor не красный.
Но когда я снова запускаю тот же код во второй раз, axes.facecolor
свойство работает, backgroundcolor меняется на красный.
Это меня смущает, почему это произошло? И есть ли какое-либо другое подобное свойство?
Комментарии:
1.
.set_style
предназначен для использования в качестве глобального свойства. Обычно я выполняю их сразу после импорта, а не в середине моего рабочего кода. Выполняется в порядке, который я описал, этого не происходит.
Ответ №1:
Согласно руководству по настройке эстетики стиля seaborn, управление локальным стилем должно выполняться с помощью (например):
with sns.axes_style("darkgrid"):
sns.lineplot(X,y,color="blue")
Для глобальных настроек используйте sns.set_style(...)
перед любым оператором построения графика, чтобы его можно было учитывать. Вот почему вы должны запустить его дважды в Jupyter, чтобы он вступил в силу. Лучшим решением может быть выделение ячейки для нее сразу после импорта.