web-dev-qa-db-fra.com

Comment changer la taille d'une figure dans le paquet Python Seaborn

J'ai du mal à augmenter la taille de mes figurines à l'aide de Seaborn. J'utilise sns.pairplot pour tracer les colonnes d'un bloc de données les unes par rapport aux autres. 

    %matplotlib inline
    plt.rcParams['figure.figsize']=10,10
    columns=list(df.columns.values)
    g=sns.pairplot(df, kind='reg', x_vars=columns,y_vars = ['Column 1'])

Les parcelles sont remplies de données, mais la taille de la figure est trop petite. Je pensais que plot.rCParams ['figure.figsize'] contrôlerait sa taille, mais cela ne semble pas prendre effet. J'ai essayé quelques suggestions différentes sur des forums en ligne, mais rien ne semble fonctionner. 

17
Vikram Josyula

Essayez de mettre la taille entre parenthèses, ceci me convient:

plt.rcParams['figure.figsize']=(10,10)
20
S.Zuo

sns.pairplot "Renvoie l'instance PairGrid sous-jacente pour un ajustement supplémentaire" ... par exemple en modifiant la taille de la figure

g=sns.pairplot(df, kind='reg', x_vars=columns,y_vars = ['Column 1'])
g.fig.set_size_inches(15,15)
16

En plus de la réponse fonctionnelle well de @MartinAnderson , seaborn lui-même offre la possibilité de définir la hauteur des sous-parcelles de la grille. En combinaison avec la variable aspect, cela détermine la taille globale de la figure en fonction du nombre de sous-parcelles dans la grille. 

En mer né <= 0.8.1:

g = sns.pairplot(..., size=10, aspect=0.6)

En mer né> = 0.9.0:

g = sns.pairplot(..., height=10, aspect=0.6)

Notez que cela s'applique à toutes les fonctions liées à la mer générant une grille au niveau de la figure, telle que pairplot, relplot, catplot, lmplot et les sous-jacentes PairGrid ou FacetGrid.

Pour d'autres tracés marins, qui tracent directement sur des axes, les solutions de Comment changez-vous la taille des figures dessinées avec matplotlib? fonctionnera bien.

4

Si nous souhaitons modifier uniquement la hauteur ou la largeur, nous pouvons le faire. 

g = sns.pairplot(df, kind='reg', x_vars=columns,y_vars = ['Column 1'])
g.fig.set_figheight(6)
g.fig.set_figwidth(10)
1
Jeevan

Répondant à la question de Rahul sur sns.catplot ( Impossible de modifier la taille de la parcelle avec matplotlib et seaborn )

Si vous essayez dans le cahier jupyter: 

plt.figure(figsize=(25,20))
sns.boxplot(x='CriticRating', y='AudienceRating', data=movies)

ça marche, mais 

sns.boxplot(x='CriticRating', y='AudienceRating', data=movies)
plt.figure(figsize=(25,20))

ne fonctionne pas (la parcelle est très petite). Il est important d'ajouter la ligne plt.figure(figsize=(25,20)) avant sns.boxplot()et d'inclure bien sûr %matplotlib inline afin d'afficher le tracé dans jupyter.

0
Dejan Marić