Skip to content
Tutoriales
Matplotlib
How to Set the Y-Axis Range in Matplotlib

Dominando Matplotlib: Precisión al establecer el rango del eje Y

¿Estás luchando por establecer los límites del eje Y en Matplotlib? ¿Estás frustrado con el rango automático del eje Y y deseas poder establecerlo según tus necesidades? Si es así, ¡estás en el lugar correcto! Esta guía completa sobre "cómo establecer el rango del eje Y en Matplotlib" te pondrá al mando y te dará control total sobre el eje Y de tus gráficos.

Antes de comenzar, vamos a entender la importancia de establecer el rango del eje Y en Matplotlib. No se trata solo de apariencia visual: establecer correctamente el rango del eje Y es crucial para la integridad de la representación de tus datos. Un eje Y con escala incorrecta puede distorsionar las tendencias de los datos y confundir a los espectadores. Por lo tanto, saber cómo establecer manualmente el rango del eje Y no solo mejorará la calidad de tus gráficos, sino que también mejorará la claridad y precisión de tu presentación de datos.

Descifrando Matplotlib: El rango del eje Y

Para empezar, aclaremos el papel del eje Y en Matplotlib. En la mayoría de los gráficos 2D, el eje Y representa la variable dependiente, es decir, la variable que cambia en respuesta a la variable independiente que se representa en el eje X. El rango del eje Y, por lo tanto, define los límites inferior y superior de esta variable dependiente en el gráfico.

La forma más sencilla de establecer el rango del eje Y es utilizando la función ylim() del módulo pyplot de Matplotlib. Esta función te permite especificar los límites inferior y superior del eje Y como argumentos. Aquí tienes un ejemplo sencillo:

import matplotlib.pyplot as plt
 
plt.plot([0, 1, 2, 3, 4], [0, 1, 4, 9, 16])
plt.ylim(0, 20)
plt.show()

En este ejemplo, hemos trazado una función cuadrática simple y establecido el rango del eje Y de 0 a 20 con plt.ylim(0, 20).

Rango del eje Y en Matplotlib: Usando objetos Axes para un control más preciso

Si bien plt.ylim() es genial para gráficos simples, para gráficos más complejos es posible que necesites un control más preciso sobre el rango del eje Y. Aquí es donde brilla la API orientada a objetos de Matplotlib.

En lugar de trabajar con el módulo pyplot, puedes crear directamente un objeto Axes y trabajar con él. Cada objeto Axes viene con una serie de métodos que puedes usar para personalizar tu gráfico, incluyendo métodos para establecer el rango del eje Y: set_ylim() y set_ybound().

Aquí tienes un ejemplo de cómo establecer el rango del eje Y utilizando un objeto Axes:

fig, ax = plt.subplots()
 
ax.plot([0, 1, 2, 3, 4], [0, 1, 4, 9, 16])
ax.set_ylim(0, 20)
plt.show()

En este ejemplo, primero creamos un objeto Figure y un objeto Axes con plt.subplots(). Luego trazamos la función cuadrática en el objeto Axes con ax.plot(). Finalmente, establecemos el rango del eje Y con ax.set_ylim(0, 20).

Rango del eje Y dinámico: ajustar los límites del eje Y sobre la marcha

A veces, es posible que desees ajustar el rango del eje Y en función de los datos u otros criterios. Para ello, Matplotlib proporciona funciones que te permiten obtener el rango actual del eje Y, que luego puedes modificar según sea necesario. Las funciones clave en este caso son get_ylim(), set_ylim(), get_ybound() y set_ybound().

Aquí tienes un ejemplo de cómo establecer dinámicamente el rango del eje Y:

fig, ax = plt.subplots()
 
ax.plot([0, 1, 2, 3, 4], [0, 1, 4, 9, 16])
ymin, ymax = ax.get_ylim()
ax.set_ylim(ymin, ymax*1.1)
plt.show()

En este ejemplo, primero obtenemos el rango actual del eje Y con ax.get_ylim(). Luego establecemos un nuevo rango del eje Y que extiende el máximo actual en un 10% con ax.set_ylim(ymin, ymax*1.1).

Estas son las formas principales de establecer el rango del eje Y en Matplotlib. Sin embargo, la versatilidad de Matplotlib permite numerosos enfoques adicionales, a los que nos adentraremos en las siguientes secciones.

Adentrándote en lo aventurado: más allá de lo básico sobre el rango del eje Y

Matplotlib también ofrece funcionalidades más avanzadas para establecer el rango del eje Y. Esto puede ser especialmente útil al trabajar con figuras de múltiples paneles, cuando necesitas aplicar el mismo rango del eje Y en varios subgráficos, o cuando deseas ajustar dinámicamente el rango del eje Y en función de los datos.

Establecer el mismo rango del eje Y para varios subgráficos

Si estás creando una figura con múltiples subgráficos, es posible que desees utilizar el mismo rango del eje Y para todos los subgráficos para garantizar consistencia. Puedes hacer esto fácilmente iterando a través de todos los objetos Axes y estableciendo el rango del eje Y para cada uno. Aquí tienes cómo hacerlo:

fig, axs = plt.subplots(2, 2)
for ax in axs.flat:
    ax.set_ylim(0, 20)
plt.show()

En este ejemplo, primero creamos una cuadrícula de subgráficos 2x2 con plt.subplots(2, 2). Luego iteramos a través de todos los objetos Axes en la matriz resultante y establecemos el rango del eje Y para cada uno con ax.set_ylim(0, 20).

Ajustar dinámicamente el rango del eje Y en función de los datos

Otra técnica avanzada es ajustar el rango del eje Y en función de los propios datos. Por ejemplo, es posible que desees establecer el rango del eje Y para abarcar desde el valor mínimo hasta el valor máximo en tu conjunto de datos. Aquí tienes un ejemplo de cómo hacerlo:

data = [0, 1, 4, 9, 16]
fig, ax = plt.subplots()
ax.plot([0, 1, 2, 3, 4], data)
ax.set_ylim(min(data), max(data))
plt.show()

En este ejemplo, primero definimos una lista de puntos de datos. Luego creamos un objeto Figure y un objeto Axes, trazamos los datos en el objeto Axes y establecemos el rango del eje Y para abarcar desde el valor mínimo hasta el valor máximo en el conjunto de datos.

Alternativa a Matplotlib: Visualiza datos con PyGWalker

Además de utilizar Matplotlib para visualizar tus marcos de datos de pandas, aquí tienes una alternativa, una biblioteca de Python de código abierto que puede ayudarte a crear visualizaciones de datos con facilidad: PyGWalker (opens in a new tab). Por favor, proporcione la traducción al español de este archivo de Markdown. Evite traducir el código, como: import BlogHeader from '../../../components/blog-header'; import BeehiivEmbed from '../../../components/BeehiivEmbed'; import JSONldScript from '../../../components/jsonld-script'; Traduzca el contenido de JSONldScript. Si hay un frontmatter, asegúrese de traducir el parámetro de idioma a "es" correspondiente. Aquí está el archivo:

PyGWalker para visualización de datos (opens in a new tab)

¡No es necesario completar procesamientos complicados con código en Python! Simplemente importe sus datos y arrastre y suelte variables para crear todo tipo de visualizaciones de datos. Aquí hay un video de demostración rápida sobre la operación:


Así es como se utiliza PyGWalker en su cuaderno de Jupyter:

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)Darle 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 el repositorio de PyGWalker en GitHub (opens in a new tab) y darnos una estrella!

Preguntas frecuentes

1. ¿Cuál es la diferencia entre ylim() y set_ylim() en matplotlib?

ylim() es una función del módulo pyplot de matplotlib que se puede utilizar para establecer el rango del eje y para el gráfico actual. set_ylim(), por otro lado, es un método de la clase Axes en la API orientada a objetos de matplotlib que se puede utilizar para establecer el rango del eje y para un objeto Axes específico.

2. ¿Cómo puedo configurar el rango del eje y para que se ajuste automáticamente según los datos?

Puede utilizar el método autoscale() de la clase Axes para escalar automáticamente el rango del eje y en función de los datos. Para tener un control aún mayor, puede utilizar el método get_ylim() para obtener el rango actual del eje y, y luego ajustarlo según sea necesario antes de establecerlo con set_ylim().

3. ¿Puedo establecer el rango del eje y para varios subgráficos a la vez?

Sí, puede establecer el rango del eje y para varios subgráficos a la vez recorriendo todos los objetos Axes y estableciendo el rango del eje y para cada uno de ellos.