web-dev-qa-db-fra.com

Comment changer de taille en utilisant la représentation graphique de Seaborn

%pylab inline

import pandas as pd
import numpy as np
import matplotlib as mpl
import seaborn as sns

typessns = pd.DataFrame.from_csv('C:/data/testesns.csv', index_col=False, sep=';')

mpl.rc("figure", figsize=(45, 10))
sns.factorplot("MONTH", "VALUE", hue="REGION", data=typessns, kind="box", palette="OrRd");

enter image description here

J'ai toujours un chiffre de petite taille, peu importe la taille que j'ai spécifiée dans figsize ... Comment résoudre ce problème?

44
fandreacci

Note ajoutée en 2019: Dans les versions marines modernes, l'argument size a été renommé en height.

Pour être un peu plus concret:

%matplotlib inline

import seaborn as sns

exercise = sns.load_dataset("exercise")

# Defaults are size=5, aspect=1
sns.factorplot("kind", "Pulse", "diet", exercise, kind="point", size=2, aspect=1)
sns.factorplot("kind", "Pulse", "diet", exercise, kind="point", size=4, aspect=1)
sns.factorplot("kind", "Pulse", "diet", exercise, kind="point", size=4, aspect=2)

Vous voulez transmettre les arguments 'size' ou 'aspect' au sns.factorplot () lors de la construction de votre tracé.

Taille modifiera la hauteur, tout en conservant le rapport de format (il sera donc également élargi si seule la taille est modifiée. )

Aspect modifiera la largeur tout en maintenant la hauteur constante.

Le code ci-dessus devrait pouvoir être exécuté localement dans un cahier ipython.

La taille des tracés est réduite dans ces exemples pour montrer les effets, et parce que les tracés du code ci-dessus étaient assez volumineux lorsqu'ils étaient enregistrés en tant que png. Cela montre également que taille/aspect inclut la légende dans la marge.

taille = 2, aspect = 1

size=2, aspect=1

taille = 4, aspect = 1

size=4, aspect=1

taille = 4, aspect = 2

size=4, aspect=2

En outre, tous les autres paramètres/arguments et valeurs par défaut utiles pour cette fonction de tracé peuvent être visualisés une fois que le module 'sns' est chargé:

help(sns.factorplot)
78
Fernando Hernandez

mpl.rc est stocké dans un dictionnaire global (voir http://matplotlib.org/users/customizing.html ). Donc, si vous voulez seulement changer la taille d'un chiffre (localement), cela fera l'affaire:

plt.figure(figsize=(45,10))
sns.factorplot(...)

Cela a fonctionné pour moi en utilisant matplotlib-1.4.3 et seaborn-0.5.1

23
arutaku

La taille de la figure est contrôlée par les arguments size et aspect de factorplot. Ils correspondent à la taille de chaque facette ("size" signifie vraiment "hauteur" puis size * aspect donne la largeur), donc si vous visez une taille particulière pour toute la figure, vous devrez travailler en arrière à partir de là.

5
mwaskom

Si vous souhaitez simplement redimensionner la figure, utilisez le code ci-dessous:

import matplotlib.pyplot as plt
plt.figure(figsize=(8, 6))
sns.factorplot("MONTH", "VALUE", hue="REGION", data=typessns, kind="box", palette="OrRd"); // OR any plot code
3
Aman Tandon
  1. Ne pas utiliser %pylab inline, il est obsolète, utilisez %matplotlib inline
  2. La question n'est pas spécifique à IPython.
  3. utiliser seaborn .set_style fonction, transmettez-le en tant que deuxième paramètre ou kwarg .: http://web.stanford.edu/~mwaskom/software/seaborn/generated/seaborn.set_style.html
3
Matt

Note à partir de juillet 2018:

seaborn.__version__ == 0.9.0

Deux changements principaux qui affectent les réponses ci-dessus

  1. La fonction factorplot a été renommée catplot()

  2. Le paramètre size a été renommé en height pour les fonctions de grille multi-tracé et celles qui les utilisent.

https://seaborn.pydata.org/whatsnew.html

Ce qui signifie que la réponse fournie par @ Fernando Hernandez doit être ajustée comme indiqué ci-dessous:

%matplotlib inline

import seaborn as sns

exercise = sns.load_dataset("exercise")

# Defaults are hieght=5, aspect=1
sns.catplot("kind", "Pulse", "diet", exercise, kind="point", height=4, aspect=2)

2
RK1

importer seaborn as sns

sns.set (rc = {'figure.figsize' :( 12.7,8.6)})

plt.figure (figsize = (45,10))

C'est ce que j'ai e

2
Ishaan