La forma de cambiar el tamaño de un gráfico de seaborn depende del tipo de función que utilices. Las funciones a nivel de ejes (scatterplot, histplot, boxplot, heatmap…) dibujan sobre unos ejes de matplotlib, por lo que el tamaño se establece al crear la figura. Las funciones a nivel de figura (relplot, displot, catplot, lmplot, pairplot, jointplot) crean su propia figura y utilizan en su lugar los argumentos height y aspect.
Crea la figura con plt.subplots(figsize = (ancho, alto)), en pulgadas, y pasa los ejes a la función de seaborn con el argumento ax.
import seaborn as sns
import matplotlib.pyplot as plt
penguins = sns.load_dataset("penguins")
fig, ax = plt.subplots(figsize = (4, 4), facecolor = "#F4F1EA")
sns.violinplot(data = penguins, x = "species", y = "body_mass_g", ax = ax)
ax.set_title("figsize = (4, 4)", fontsize = 16, family = "monospace")
# plt.show()

Usando plt.figure
Si no necesitas el objeto de los ejes, también funciona llamar a plt.figure antes de la función de seaborn.
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
plt.figure(figsize = (10, 4))
sns.histplot(data = penguins, x = "body_mass_g")
# plt.show()
Las funciones a nivel de figura ignoran figsize. Utiliza height para establecer la altura de cada subplot en pulgadas y aspect para establecer su anchura como proporción de la altura (anchura = altura x aspect).


import seaborn as sns
import matplotlib.pyplot as plt
penguins = sns.load_dataset("penguins")
sns.displot(data = penguins, x = "flipper_length_mm", height = 3, aspect = 2.5)
# plt.show()
Tamaño de cada faceta
Cuando el gráfico tiene varias facetas, height y aspect se refieren a cada faceta, por lo que la figura crece con el número de subplots.


import seaborn as sns
import matplotlib.pyplot as plt
penguins = sns.load_dataset("penguins")
sns.relplot(data = penguins, x = "bill_length_mm", y = "bill_depth_mm", col = "island",
height = 3, aspect = 1)
# plt.show()
Las funciones a nivel de figura devuelven un objeto con el atributo figure, por lo que también puedes cambiar el tamaño de toda la figura con set_size_inches.
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
g = sns.relplot(data = penguins, x = "bill_length_mm", y = "bill_depth_mm")
g.figure.set_size_inches(8, 4)
# plt.show()
Para cambiar el tamaño por defecto de todos los gráficos a nivel de ejes establece figure.figsize con el argumento rc de sns.set_theme.
import seaborn as sns
sns.set_theme(rc = {"figure.figsize": (8, 5)})
Los textos no cambian de tamaño cuando la figura crece. Para escalar todas las fuentes a la vez utiliza el argumento font_scale de sns.set_theme, que se explica en el tutorial sobre los temas de seaborn. También puedes consultar cómo cambiar el tamaño de la figura en matplotlib.
También te puede interesar