Comment puis-je modifier la taille de mon image pour qu'elle soit adaptée à l'impression?
Par exemple, je voudrais utiliser du papier A4, dont les dimensions sont de 11,7 pouces par 8,27 pouces en orientation paysage.
Vous devez créer à l'avance les objets Figure et Axes matplotlib, en spécifiant la taille de la figure:
from matplotlib import pyplot
import seaborn
import mylib
a4_dims = (11.7, 8.27)
df = mylib.load_data()
fig, ax = pyplot.subplots(figsize=a4_dims)
seaborn.violinplot(ax=ax, data=df, **violin_options)
sns.lmplot()
height
etaspect
comme expliqué ici stackoverflow.com/a/51602446/2412831Vous pouvez également définir la taille de la figure en passant le dictionnaire au
rc
paramètre avec la clé'figure.figsize'
dans laset
méthode seaborn :Autre alternative peut être d'utiliser
figure.figsize
dercParams
la taille de la figure ci - dessous ensemble comme:Plus de détails peuvent être trouvés dans la documentation de matplotlib
la source
.set()
avant.set_style()
Vous pouvez définir le contexte sur
poster
ou définir manuellementfig_size
.la source
sns.lmplot()
Notez que si vous essayez de passer à une méthode "au niveau de la figure" dans seaborn (par exemple
lmplot
,catplot
/factorplot
,jointplot
) vous pouvez et devez le spécifier dans les arguments en utilisantheight
etaspect
.Voir https://github.com/mwaskom/seaborn/issues/488 et Plotting with seaborn à l'aide de l'interface orientée objet matplotlib pour plus de détails sur le fait que les méthodes au niveau des figures n'obéissent pas aux spécifications des axes.
la source
importer d'abord matplotlib et l'utiliser pour définir la taille de la figure
la source
Cela peut être fait en utilisant:
la source
Cela fonctionnera également.
la source
Pour mon intrigue (un facteur factoriel sns), la réponse proposée ne fonctionnait pas bien.
Ainsi j'utilise
Juste après l'intrigue avec seaborn (donc pas besoin de passer une hache à seaborn ou de changer les paramètres rc).
la source
python g = sns.FacetGrid(df.set_index('category'), col="id") pyplot.gcf().set_size_inches(11.7, 8.27) g.map(lambda data, color: data.plot.barh(color=color), "count")
sns.FacetGrid
une taille de figure en fonction d'une valeur calculée (définie parheight
etaspect
) et que la modification de la taille de la figure directement après le tracé de Seaborn fonctionne. Et un autre réglage fin de l'intrigue peut se produire après avoir changé la taille de la figureEn plus de la réponse d' elz concernant les méthodes "au niveau de la figure" qui retournent des objets de grille multi-tracé, il est possible de définir la hauteur et la largeur de la figure de manière explicite (c'est-à-dire sans utiliser le rapport hauteur / largeur) en utilisant l'approche suivante:
la source
set_figwidth
etset_figheight
fonctionnent bien pour les objets de la grille. >>> importez seaborn >>> importez matplotlib.pyplot comme pyplot >>> tips = seaborn.load_dataset ("tips") >>> g = seaborn.FacetGrid (tips, col = "time", row = "smoker") >>> g = g.map (pyplot.hist, "total_bill") >>> g.fig.set_figwidth (10) >>> g.fig.set_figheight (10)Les meilleures réponses de Paul H et J. Li ne fonctionnent pas pour tous les types de personnages nés de la mer. Pour le
FacetGrid
type (par exemplesns.lmplot()
), utilisez le paramètresize
etaspect
.Size
modifie à la fois la hauteur et la largeur, en conservant le rapport hauteur / largeur.Aspect
ne change que la largeur, en gardant la hauteur constante.Vous pouvez toujours obtenir la taille souhaitée en jouant avec ces deux paramètres.
Crédit: https://stackoverflow.com/a/28765059/3901029
la source