Cómo establecer el rango del eje (xlim, ylim) en Matplotlib

    Introducción

    Matplotlib es una de las bibliotecas de visualización de datos más utilizadas en Python. Gran parte de la popularidad de Matplotlib proviene de sus opciones de personalización: puede modificar casi cualquier elemento de su jerarquía de objetos.

    En este tutorial, veremos cómo establecer el rango del eje (xlim, ylim) en Matplotlib, para truncar o expandir la vista a límites específicos.

    Crear una parcela

    Primero creemos una trama simple:

    import matplotlib.pyplot as plt
    import numpy as np
    
    fig, ax = plt.subplots(figsize=(12, 6))
    
    x = np.arange(0, 10, 0.1)
    y = np.sin(x)
    z = np.cos(x)
    
    ax.plot(y, color="blue", label="Sine wave")
    ax.plot(z, color="black", label="Cosine wave")
    
    plt.show()
    

    Aquí, hemos trazado dos funciones seno, comenzando en 0 y termina en 100 con un paso de 0.1. Ejecutar este código produce:

    Ahora, podemos ajustar el rango de este eje, que actualmente va desde 0 a 100.

    Configuración del rango del eje en Matplotlib

    Ahora, si queremos truncar esa vista, en una más pequeña o incluso en una más grande, podemos ajustar los límites X e Y. Se puede acceder a ellos a través de la instancia de PyPlot o del Axes ejemplo.

    Cómo establecer X-Limit (xlim) en Matplotlib

    Primero establezcamos el límite X, usando PyPlot y Axes instancias. Ambos métodos aceptan una tupla: los límites izquierdo y derecho. Entonces, por ejemplo, si quisiéramos truncar la vista para mostrar solo los datos en el rango de 25-50 en el eje X, usaríamos xlim([25, 50]):

    fig, ax = plt.subplots(figsize=(12, 6))
    
    x = np.arange(0, 10, 0.1)
    y = np.sin(x)
    z = np.cos(x)
    
    ax.plot(y, color="blue", label="Sine wave")
    ax.plot(z, color="black", label="Cosine wave")
    
    plt.xlim([25, 50])
    

    Esto limita la vista en el eje X a los datos entre 25 y 50 y resulta en:

    Este mismo efecto se puede lograr estableciendo estos a través del ax objeto. De esta forma, si tenemos varios Axes, podemos establecer el límite para ellos por separado:

    import matplotlib.pyplot as plt
    import numpy as np
    
    fig = plt.figure(figsize=(12, 6))
    
    x = np.arange(0, 10, 0.1)
    y = np.sin(x)
    z = np.cos(x)
    
    ax = fig.add_subplot(121)
    ax2 = fig.add_subplot(122)
    
    ax.set_title('Full view')
    ax.plot(y, color="blue", label="Sine wave")
    ax.plot(z, color="black", label="Cosine wave")
    
    ax2.set_title('Truncated view')
    ax2.plot(y, color="blue", label="Sine wave")
    ax2.plot(z, color="black", label="Cosine wave")
    
    ax2.set_xlim([25, 50])
    
    plt.show()
    

    Cómo establecer el límite Y (ylim) en Matplotlib

    Ahora, establezcamos el límite Y. Esto se puede lograr con los mismos dos enfoques:

    ax.plot(y, color="blue", label="Sine wave")
    ax.plot(z, color="black", label="Cosine wave")
    
    plt.ylim([-1, 0])
    

    O:

    ax.plot(y, color="blue", label="Sine wave")
    ax.plot(z, color="black", label="Cosine wave")
    
    ax.set_ylim([-1, 0])
    

    Ambos resultan en:

    Conclusión

    En este tutorial, hemos repasado cómo establecer el rango del eje (es decir, los límites X e Y) usando Matplotlib en Python.

    Si está interesado en la visualización de datos y no sabe por dónde empezar, asegúrese de consultar nuestro libro sobre Visualización de datos en Python.

    Data Visualization in Python, un libro para desarrolladores de Python principiantes e intermedios, lo guiará a través de la manipulación simple de datos con Pandas, cubrirá bibliotecas de trazado centrales como Matplotlib y Seaborn, y le mostrará cómo aprovechar las bibliotecas declarativas y experimentales como Altair.

     

    Visualización de datos en Python

    ¡Comprenda mejor sus datos con visualizaciones! Con 340 páginas, aprenderá los entresijos de la visualización de datos en Python con bibliotecas populares como Matplotlib, Seaborn, Bokeh y más.

     

    Etiquetas:

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *