Tamaño de la figura en seaborn

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.

Tamaño de los gráficos a nivel de ejes

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()

Cambiar el tamaño de un gráfico de seaborn con figsize

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()

Tamaño de los gráficos a nivel de figura

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).

Cambiar el tamaño de un gráfico de seaborn a nivel de figura con height y aspectCambiar el tamaño de un gráfico de seaborn a nivel de figura con height y 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.

Tamaño de las facetas de un gráfico de seabornTamaño de las facetas de un gráfico de seaborn

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()

Cambiar el tamaño después de crear el gráfico

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()

Cambiar el tamaño por defecto

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.

Fundamentals of Data Visualization

A Primer on Making Informative and Compelling Figures

Comprar en Amazon

También te puede interesar