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);