Да, ==
плохо для сравнения строк (любые объекты действительно, если вы не знаете, что они канонические). ==
просто сравнивает ссылки на объекты. .equals()
тесты для равенства. Для строк часто они будут такими же, но, как вы обнаружили, это не гарантируется всегда.
Одна из возможностей состоит в том, чтобы обрезать свою собственную функцию, которая воспроизводит то, что делает морское судно «под капюшоном»
Это адаптировано из кода seaborn на github :
def scale_fonts(font_scale):
font_keys = ["axes.labelsize", "axes.titlesize", "legend.fontsize",
"xtick.labelsize", "ytick.labelsize", "font.size"]
font_dict = {k: matplotlib.rcParams[k] * font_scale for k in font_keys}
matplotlib.rcParams.update(font_dict)
Вы должны убедиться, что значения для font_keys
выше в числовом (например, 12, а не «medium») в вашем rc-файле, но в остальном это все, что нужно.
Вы ищете set_context
:
sns.set_context("notebook", font_scale=1.25)
Это масштабирует шрифты относительно предопределенного стиля "notebook"
, который кажется самым близким к значениям по умолчанию matplotlib .
Сравнение:
График по умолчанию:
С sns.set_context(font_scale=1.25)
:
С sns.set_context("notebook", font_scale=1.25)
:
context="notebook"
по умолчанию sns.set
, поэтому он не меняет стиль.
– taras
13 July 2018 в 11:39
sns.set(font_scale=1.25)
, и он меняет несколько вещей.
– taras
13 July 2018 в 11:45
font_keys
(кромеfont.size
) с нечисловыми значениями, поэтому изменениеfont.size
вrcParams
повлияет наfont_keys
. – taras 13 July 2018 в 14:20