web-dev-qa-db-fra.com

seaborn: lmplot () a obtenu un argument de mot clé inattendu 'figsize'

Comment puis-je changer la taille de la figure pour mon lmplot dans seaborn?

Il s'agit de mon code actuel, mais apparemment, figsize n'est pas accepté.

sns.lmplot(x="x", y="y", hue="category", data=df,fit_reg=False,
       markers=["o", "x"], palette="Set1",figsize=(7,7));

Merci.

16
Zachary Nagler

Comme un lmplot est "au niveau de la figure", figsize est déterminé par deux paramètres, size et aspect. Je pense size=7 fera ce que vous voulez mais je suis peut-être loin.

Le voici dans la documentation (recherchez "Changer la hauteur et le rapport hauteur/largeur des facettes"): http://seaborn.pydata.org/generated/seaborn.lmplot.html

Remarque: J'ai été sans cesse confus par la même chose, et ce serait vraiment bien pour le dimensionnement d'avoir une interface cohérente.

15
Josh Rumbut

Comparez ces deux façons de définir la taille d'un graphique:

Génération d'un tracé de modèle linéaire

sns.lmplot(data=conversion, x='Week Index', y='Lead-Ann', size=4, aspect=5)

Création d'une figure avec un tracé de régression

plt.figure(figsize=(24,4))
sns.regplot(data=conversion, x='Week Index', y='Lead-Ann')

La différence s'explique par la documentation Seaborn: seaborn.lmplot

Comprendre la différence entre regplot () et lmplot () peut être un peu délicat. En fait, ils sont étroitement liés, car lmplot () utilise regplot () en interne et prend la plupart de ses paramètres. Cependant, regplot () est une fonction au niveau des axes, donc il dessine directement sur un axe (soit les axes actuellement actifs soit celui fourni par le paramètre ax), tandis que lmplot () est une fonction au niveau de la figure et crée sa propre figure , qui est géré via un FacetGrid. Cela a quelques conséquences, à savoir que regplot () peut coexister avec bonheur dans une figure avec d'autres types de tracés et suivra le cycle de couleur global matplotlib. En revanche, lmplot () doit occuper une figure entière, et la taille et le cycle de couleur sont contrôlés via des paramètres de fonction, ignorant les valeurs par défaut globales.

10
Joe Heffer

Dans Seaborn 0.9.0, je pense que la bonne façon de procéder consiste à utiliser height (valeur par défaut de 5) pour définir la hauteur de la figure, puis à utiliser aspect (valeur par défaut de 1) pour réglez la largeur. height * aspect = width.

Pour faire un carré plus grand, augmentez simplement la hauteur:

sns.lmplot(x='x', y='y', hue='category', data=df, height=7);

Pour l'agrandir également, augmentez le rapport d'aspect:

sns.lmplot(x='x', y='y', hue='category', data=df, height=7, aspect=1.6);
1
getup8