Seaborn: lmplot() получил неожиданный аргумент ключевого слова 'figsize'
Как изменить размер фигуры для моего lmplot на морском побережье?
Это мой текущий код, но, по-видимому, figsize не принимается.
sns.lmplot(x="x", y="y", hue="category", data=df,fit_reg=False,
markers=["o", "x"], palette="Set1",figsize=(7,7));
Спасибо
Ответы
Ответ 1
Поскольку lmplot
- это "уровень фигуры", figsize
определяется двумя параметрами: size
и aspect
. Я думаю, что size=7
будет делать то, что вы хотите, но я могу быть далеко.
Вот это в документации (поиск "Изменить высоту и соотношение сторон граней"): http://seaborn.pydata.org/generated/seaborn.lmplot.html
Примечание: я был бесконечно смущен одной и той же вещью, и было бы неплохо иметь размеры, чтобы иметь согласованный интерфейс.
Ответ 2
Сравните эти два способа установки размера диаграммы:
Создание линейной модели
sns.lmplot(data=conversion, x='Week Index', y='Lead-Ann', size=4, aspect=5)
Создание фигуры с графикой регрессии
plt.figure(figsize=(24,4))
sns.regplot(data=conversion, x='Week Index', y='Lead-Ann')
Разница объясняется документацией Seaborn: seaborn.lmplot
Понимание различия между regplot() и lmplot() может быть бит сложный. Фактически, они тесно связаны, поскольку использует lmplot() regplot() и принимает большинство параметров. Однако, regplot() - функция уровня осей, поэтому она рисует непосредственно на оси (либо активные в настоящее время оси, либо то, что предусмотрено тором параметр), а lmplot() - функция уровня фигуры и создает собственной фигурой, которая управляется через FacetGrid. У этого есть несколько последствия, а именно, что regplot() может радостно сосуществовать на фигуре с другими видами сюжетов и будет следовать глобальному цвету matplotlib цикл. Напротив, lmplot() должен занимать целую фигуру, а размер и цветовой цикл контролируются с помощью функциональных параметров, игнорируя глобальные значения по умолчанию.
Ответ 3
В Seaborn 0.9.0 я думаю, что правильный способ сделать это - использовать height
(по умолчанию 5), чтобы установить высоту фигуры, а затем использовать aspect
(по умолчанию 1), чтобы установить ширину. height * aspect = width
.
Чтобы сделать квадрат большего размера, просто увеличьте высоту:
sns.lmplot(x='x', y='y', hue='category', data=df, height=7);
Чтобы сделать его шире, увеличьте соотношение сторон:
sns.lmplot(x='x', y='y', hue='category', data=df, height=7, aspect=1.6);