Wie ändere ich die Größe meines Bildes, damit es zum Drucken geeignet ist?
Zum Beispiel möchte ich A4-Papier verwenden, dessen Abmessungen im Querformat 11,7 x 8,27 Zoll betragen.
Wie ändere ich die Größe meines Bildes, damit es zum Drucken geeignet ist?
Zum Beispiel möchte ich A4-Papier verwenden, dessen Abmessungen im Querformat 11,7 x 8,27 Zoll betragen.
Antworten:
Sie müssen die Objekte matplotlib Figure und Axes im Voraus erstellen und angeben, wie groß die Figur ist:
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
und aspect
wie hier beschrieben eingestellt werden. Stackoverflow.com/a/51602446/2412831
Sie können die Figurengröße auch festlegen, indem Sie das Wörterbuch an den rc
Parameter mit dem Schlüssel 'figure.figsize'
in der Seaborn- set
Methode übergeben:
import seaborn as sns
sns.set(rc={'figure.figsize':(11.7,8.27)})
Andere Alternative kann zu benutzen , figure.figsize
der rcParams
wie unten Satz Abbildung Größe:
from matplotlib import rcParams
# figure size in inches
rcParams['figure.figsize'] = 11.7,8.27
Weitere Details finden Sie in der matplotlib-Dokumentation
.set()
vor.set_style()
Sie können den Kontext poster
festlegen oder manuell festlegen fig_size
.
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
np.random.seed(0)
n, p = 40, 8
d = np.random.normal(0, 2, (n, p))
d += np.log(np.arange(1, p + 1)) * -5 + 10
# plot
sns.set_style('ticks')
fig, ax = plt.subplots()
# the size of A4 paper
fig.set_size_inches(11.7, 8.27)
sns.violinplot(data=d, inner="points", ax=ax)
sns.despine()
fig.savefig('example.png')
sns.lmplot()
Beachten Sie , wenn Sie auf eine „-Figur Ebene“ Methode in Seaborn zu passieren versuchen (zB lmplot
, catplot
/ factorplot
, jointplot
) Sie können und dies innerhalb der Argumente angeben sollten mit height
und aspect
.
sns.catplot(data=df, x='xvar', y='yvar',
hue='hue_bar', height=8.27, aspect=11.7/8.27)
Siehe https://github.com/mwaskom/seaborn/issues/488 und Plotten mit Seaborn mit der matplotlib objektorientierten Schnittstelle für weitere Details über die Tatsache , dass Abbildung Ebene Methoden nicht gehorchen Achsen Spezifikationen.
Das soll auch funktionieren.
from matplotlib import pyplot as plt
import seaborn as sns
plt.figure(figsize=(15,16))
sns.countplot(data=yourdata, ...)
Für meine Handlung (eine sns-Faktor-Handlung) funktionierte die vorgeschlagene Antwort nicht gut.
Also benutze ich
plt.gcf().set_size_inches(11.7, 8.27)
Kurz nach der Handlung mit Seaborn (also keine Notwendigkeit, eine Axt an Seaborn zu übergeben oder die RC-Einstellungen zu ändern).
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
würde eine Figurengröße gemäß einem berechneten Wert (eingestellt durch height
und aspect
) festgelegt, und das Ändern der Figurengröße direkt nach dem Plotten auf See funktioniert. Und andere Feinabstimmungen der Handlung können nach Änderung der Figurengröße erfolgen
Zusätzlich zur elz- Antwort bezüglich "Figurenebene" -Methoden, die Rasterobjekte mit mehreren Plots zurückgeben, ist es möglich, die Höhe und Breite der Figur explizit ( dh ohne Verwendung des Seitenverhältnisses) unter Verwendung des folgenden Ansatzes festzulegen :
import seaborn as sns
g = sns.catplot(data=df, x='xvar', y='yvar', hue='hue_bar')
g.fig.set_figwidth(8.27)
g.fig.set_figheight(11.7)
set_figwidth
und set_figheight
funktionieren gut für Gitterobjekte. >>> Seaborn importieren >>> matplotlib.pyplot als Pyplot importieren >>> 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)
Die Top-Antworten von Paul H und J. Li funktionieren nicht für alle Arten von Seegeborenen. Verwenden Sie für den FacetGrid
Typ (zum Beispiel sns.lmplot()
) den Parameter size
und aspect
.
Size
Ändert sowohl die Höhe als auch die Breite, wobei das Seitenverhältnis beibehalten wird.
Aspect
Ändert nur die Breite und hält die Höhe konstant.
Sie können immer die gewünschte Größe erhalten, indem Sie mit diesen beiden Parametern spielen.
Gutschrift: https://stackoverflow.com/a/28765059/3901029