Hoe wijzig ik de grootte van mijn afbeelding zodat deze geschikt is om af te drukken?
Ik wil bijvoorbeeld A4-papier gebruiken, waarvan de afmetingen 11,7 inch bij 8,27 inch zijn in liggende richting.
Antwoord 1, autoriteit 100%
U moet de matplotlib Figure en Axes-objecten van tevoren maken en specificeren hoe groot de figuur is:
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)
Antwoord 2, autoriteit 95%
Je kunt de figuurgrootte ook instellen door het woordenboek door te geven aan de parameter rc
met de sleutel 'figure.figsize'
in de seaborn set
-methode:
import seaborn as sns
sns.set(rc={'figure.figsize':(11.7,8.27)})
Een ander alternatief kan zijn om figure.figsize
van rcParams
te gebruiken om de figuurgrootte in te stellen zoals hieronder:
from matplotlib import rcParams
# figure size in inches
rcParams['figure.figsize'] = 11.7,8.27
Meer details zijn te vinden in matplotlib-documentatie
Antwoord 3, autoriteit 51%
Houd er rekening mee dat als u probeert over te gaan naar een “cijferniveau”-methode in seaborn (bijvoorbeeld lmplot
, catplot
/ factorplot
, jointplot
) je kunt en moet dit specificeren binnen de argumenten met behulp van height
en aspect
.
sns.catplot(data=df, x='xvar', y='yvar',
hue='hue_bar', height=8.27, aspect=11.7/8.27)
Zie https://github.com/mwaskom/seaborn/issues/488en Plotten met seaborn met behulp van de matplotlib object-georiënteerde interfacevoor meer details over het feit dat methoden op figuurniveau niet voldoen aan de specificaties van de assen.
Antwoord 4, autoriteit 36%
Je kunt de context instellen als poster
of handmatig fig_size
instellen.
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')
Antwoord 5, autoriteit 33%
importeer eerst matplotlib en gebruik het om de grootte van het figuur in te stellen
from matplotlib import pyplot as plt
import seaborn as sns
plt.figure(figsize=(15,8))
ax = sns.barplot(x="Word", y="Frequency", data=boxdata)
Antwoord 6, autoriteit 19%
Dit kan worden gedaan met:
plt.figure(figsize=(15,8))
sns.kdeplot(data,shade=True)
Antwoord 7, Autoriteit 16%
In aanvulling op ELZ Antwoord met betrekking tot “figuurtniveau” -methoden die multi-perceel rasterobjecten retourneren, is het mogelijk om de figuurhoogte en breedte expliciet in te stellen (dat is zonder een beeldverhouding) met behulp van het volgende Aanpak:
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)
Antwoord 8, Autoriteit 10%
Dit zal ook werken.
from matplotlib import pyplot as plt
import seaborn as sns
plt.figure(figsize=(15,16))
sns.countplot(data=yourdata, ...)
Antwoord 9, Autoriteit 8%
Voor mijn perceel (een SNS-factorplot) Het voorgestelde antwoord werkt niet goed.
Zo gebruik ik
plt.gcf().set_size_inches(11.7, 8.27)
net na het perceel met op zee (dus niet nodig om een bijl naar boven te halen of om de RC-instellingen te wijzigen).
Antwoord 10, Autoriteit 3%
De topantwoorden van Paul H en J. Li werken niet voor alle soorten bubir-figuren. Voor de FacetGrid
Type (bijvoorbeeld sns.lmplot()
), gebruik de size
en aspect
parameter.
Size
Wijzigt zowel de hoogte als de breedte, waarbij de beeldverhouding wordt gehandhaafd.
aspect
Wijzigt alleen de breedte, bewaar de hoogte constant.
U kunt altijd uw gewenste maat krijgen door met deze twee parameters te spelen.
Credit: https://stackoverflow.com/a/28765059/3901029
Antwoord 11
# Sets the figure size temporarily but has to be set again the next plot
plt.figure(figsize=(18,18))
sns.barplot(x=housing.ocean_proximity, y=housing.median_house_value)
plt.show()
Antwoord 12
Sommige uitgeprobeerd manieren:
import seaborn as sns
import matplotlib.pyplot as plt
ax, fig = plt.subplots(figsize=[15,7])
sns.boxplot(x="feature1", y="feature2",data=df) # where df would be your dataframe
of
import seaborn as sns
import matplotlib.pyplot as plt
plt.figure(figsize=[15,7])
sns.boxplot(x="feature1", y="feature2",data=df) # where df would be your dataframe