Skip to content

Dominando los tamaños de figuras en Matplotlib: Una guía completa

Updated on

Entender cómo controlar el tamaño de las figuras en Matplotlib, una popular biblioteca de visualización de datos en Python, es crucial para producir gráficos de alta calidad. En esta guía completa, exploraremos varios métodos para establecer tamaños de figuras en Matplotlib, ya sea que estés creando una nueva figura o quieras modificar una existente.

Comprendiendo los tamaños de figuras en Matplotlib

Matplotlib opera de manera similar a MATLAB. Cuando creas una figura, puedes especificar el tamaño de la figura en pulgadas. La función figure() se utiliza para crear una nueva figura y toma el argumento figsize, que representa el ancho y alto de la figura en pulgadas. Normalmente se proporciona como una tupla (ancho, alto).

Aquí tienes un ejemplo sencillo de cómo crear una figura con un tamaño específico:

from matplotlib.pyplot import figure
 
## Crea una nueva figura con un tamaño específico (ancho=8 pulgadas, alto=6 pulgadas)
figure(figsize=(8, 6))

En el código anterior, la función figure() se llama con el parámetro figsize establecido en (8, 6). Esto crea una figura de 8 pulgadas de ancho y 6 pulgadas de alto.

Ajustar el tamaño de una figura después de su creación

A veces, es posible que desees ajustar el tamaño de una figura después de haberla creado. La biblioteca Matplotlib proporciona la función set_size_inches() para lograr esto.

Así es como se utiliza esta función:

import matplotlib.pyplot as plt
 
## Crea una nueva figura
fig = plt.gcf()
 
## Establece el tamaño de la figura en 18.5x10.5 pulgadas
fig.set_size_inches(18.5, 10.5)
 
## Guarda la figura
fig.savefig('figure.png', dpi=100)

En este fragmento de código, la función gcf() (que significa 'obtener la figura actual') se utiliza para obtener la figura actual, y luego se establece su tamaño utilizando el método set_size_inches().

Aprovechar plt.rcParams

Otra forma de establecer el tamaño de las figuras en Matplotlib es utilizando el parámetro plt.rcParams, especialmente útil cuando estás utilizando plt.plot() y no quieres usar el entorno de figura.

Aquí tienes un ejemplo sencillo:

import matplotlib.pyplot as plt
 
## Establece el tamaño de la figura en 20x3 pulgadas
plt.rcParams["figure.figsize"] = (20,3)

En este fragmento de código, se utiliza el diccionario rcParams para establecer el tamaño de la figura. Este enfoque es extremadamente práctico cuando se realiza una representación en línea, como en un cuaderno Jupyter.

Establecer el tamaño de la figura en centímetros

Si bien la tupla figsize acepta pulgadas, si deseas establecer el tamaño en centímetros, deberás convertir las dimensiones de centímetros a pulgadas (ya que 1 pulgada equivale a 2.54 cm).

Así es cómo se hace:

## Establece el tamaño de la figura en centímetros
ancho_cm = 20
alto_cm = 10
 
## Convierte cm a pulgadas
ancho_pulg = ancho_cm/2.54
alto_pulg = alto_cm/2.54
 
## Crea una nueva figura con el tamaño especificado
figure(figsize=(ancho_pulg, alto_pulg))

En este ejemplo, primero especificamos el ancho y alto en centímetros. Estas dimensiones se convierten luego a pulgadas dividiéndolas por 2.54. Finalmente, las dimensiones convertidas se utilizan para crear una nueva figura con el tamaño especificado.

Utilizar rcParams para ajustar el tamaño de la figura dinámicamente

Es importante destacar la flexibilidad y poder del enfoque rcParams. Esta estrategia te permite definir ajustes predeterminados para tus figuras, asegurando consistencia en todos los gráficos de tu script o cuaderno. En la siguiente sección, veremos cómo utilizar rcParams para ajustar los tamaños de las figuras de manera dinámica.

Cambiar dinámicamente el tamaño de la figura con rcParams

Como se mencionó anteriormente, rcParams no solo es útil para establecer un tamaño de figura único, sino que también proporciona una forma eficiente de ajustar los tamaños de las figuras para todo el entorno de programación de manera dinámica. Este enfoque es especialmente beneficioso al trabajar en proyectos más grandes, donde puedes requerir estilos y dimensiones de trazado consistentes.

El tamaño global de la figura se puede restablecer a los valores predeterminados usando el atributo rcParamsDefault. Así es cómo se hace:

plt.rcParams["figure.figsize"] = plt.rcParamsDefault["figure.figsize"]

En este código, el atributo rcParamsDefault contiene la configuración predeterminada, restableciendo efectivamente el tamaño de la figura a las dimensiones originales.

Controlar tamaños de figuras utilizando Pandas

Pandas, una biblioteca utilizada para la manipulación y análisis de datos, a menudo se utiliza junto con Matplotlib para visualizaciones. Si deseas ajustar el tamaño de la figura mientras trabajas con Pandas, puedes establecer directamente el parámetro figsize dentro de la función de trazado de la siguiente manera:

df['una_columna'].plot(figsize=(10, 5))

En este ejemplo, df es un dataframe de Pandas, y estamos creando un gráfico para 'una_columna' con un tamaño de 10x5 pulgadas.

También puedes establecer el tamaño de la figura al crear subgráficos:

fig, ax = plt.subplots(figsize=(10, 5))
df['una_columna'].plot(ax=ax)

Ajustar el tamaño predeterminado de la figura

¿Quieres cambiar la configuración predeterminada del tamaño de la figura? No hay problema. Matplotlib facilita esto permitiéndote actualizar la configuración predeterminada:

import matplotlib
 
matplotlib.rc('figure', figsize=(10, 5))

En este código, la función matplotlib.rc se utiliza para cambiar el tamaño predeterminado de la figura. Ahora, todos los gráficos creados tendrán un tamaño de 10x5 pulgadas.

Alternativa a Matplotlib: Visualiza los datos con PyGWalker

Además de usar Matplotlib para visualizar tus dataframes de Pandas, aquí hay una alternativa, una biblioteca de Python de código abierto que puede ayudarte a crear visualizaciones de datos fácilmente: PyGWalker (opens in a new tab).

PyGWalker para visualización de datos (opens in a new tab) No es necesario completar un procesamiento complicado con código Python, simplemente importa tus datos y arrastra y suelta variables para crear todo tipo de visualizaciones de datos. Aquí tienes un video de demostración rápida sobre el funcionamiento:


Así es como se usa PyGWalker en tu Jupyter Notebook:

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

Alternativamente, puedes probarlo en Kaggle Notebook/Google Colab:

Ejecutar PyGWalker en Kaggle Notebook (opens in a new tab)Ejecutar PyGWalker en Google Colab (opens in a new tab)Dale una ⭐️ a PyGWalker en GitHub (opens in a new tab)
Ejecutar PyGWalker en Kaggle Notebook (opens in a new tab)Ejecutar PyGWalker en Google Colab (opens in a new tab)Ejecutar PyGWalker en Google Colab (opens in a new tab)

PyGWalker se basa en el apoyo de nuestra comunidad de código abierto. ¡No olvides visitar PyGWalker GitHub (opens in a new tab) y darnos una estrella!

Preguntas frecuentes:

  1. ¿Cómo configuro el tamaño de la figura en Matplotlib?

    Puedes configurar el tamaño de la figura en Matplotlib utilizando la función figure() con el parámetro figsize. El parámetro figsize acepta una tupla que representa el ancho y alto de la figura en pulgadas.

  2. ¿Cómo ajusto el tamaño de una figura existente en Matplotlib?

    Para ajustar el tamaño de una figura existente, utiliza la función set_size_inches(). Esta función te permite establecer el ancho y alto de la figura actual.

  3. ¿Puedo configurar el tamaño de la figura en los gráficos de Pandas?

    Sí, puedes ajustar el tamaño de la figura directamente dentro de la función plot() de Pandas utilizando el parámetro figsize.