Gráfico de línea de Matplotlib: tutorial y ejemplos

    Introducción

    Matplotlib es una de las bibliotecas de visualización de datos más utilizadas en Python. Desde visualizaciones simples hasta complejas, es la biblioteca de referencia para la mayoría.

    En este tutorial, veremos cómo trazar un diagrama de líneas en Matplotlib, uno de los tipos más básicos de diagramas.

    Los gráficos de línea muestran valores numéricos en un eje y valores categóricos en el otro. Por lo general, se pueden usar de la misma manera que se pueden usar los gráficos de barras, aunque se usan más comúnmente para realizar un seguimiento de los cambios a lo largo del tiempo.

    Trazar una gráfica de línea en Matplotlib

    Para trazar una gráfica de línea en Matplotlib, usa el genérico plot() función desde la instancia de PyPlot. No hay especifico lineplot() función: la genérica traza automáticamente usando líneas o marcadores.

    Creemos nuestro propio pequeño conjunto de datos para trabajar:

    import matplotlib.pyplot as plt
    
    x = [1, 2, 3, 4, 5, 6]
    y = [1, 5, 3, 5, 7, 8]
    
    plt.plot(x, y)
    plt.show()
    

    Esto da como resultado un diagrama de línea simple:

    Alternativamente, podríamos haber omitido completamente el x eje, y recién trazado y. Esto daría como resultado que el eje X se llene con range(len(y)):

    import matplotlib.pyplot as plt
    y = [1, 5, 3, 5, 7, 8]
    
    plt.plot(y)
    plt.show()
    

    Esto da como resultado casi el mismo gráfico de líneas que antes, ya que los valores de x se infieren.

    los x Los valores, ya sean inferidos o establecidos manualmente por nosotros, como en el primer ejemplo, deben estar en el mismo rango que yvalores de. Si y viene de 0..100, x también debería:

    Sin embargo, podemos cambiar este comportamiento e ir por encima de ese rango, en cuyo caso, el y los valores se asignarán a aquellos en su lugar:

    import matplotlib.pyplot as plt
    y = [1, 5, 3, 5, 7, 8]
    x = [10, 20, 30, 40, 50, 60]
    
    plt.plot(x, y)
    plt.show()
    

    Esto resulta en:

    Hemos estado tratando con uniformes x valores hasta ahora. Veamos qué pasa si cambiamos la distribución:

    import matplotlib.pyplot as plt
    y = [1, 5, 3, 5, 7, 8]
    x = [1, 2, 3, 4, 5, 20]
    
    plt.plot(x, y)
    plt.show()
    

    El primer par de valores establece la escala. Y 1, 5, 3, 5, 7 son como de costumbre, asignados a 1, 2, 3, 4, 5. Sin embargo, desde 20 saltó de ninguna parte, 8 no se puede asignar directamente a él.

    El eje X mantiene su escala uniforme y agrega un montón de valores perdidos de 5..20, luego, mapea 8 a 20, lo que resulta en una línea recta desde 7..8 en el eje Y:

    Trazar un gráfico de línea logarítmicamente en Matplotlib

    Cuando se trata de conjuntos de datos que tienen números progresivamente más grandes, y especialmente si su distribución se inclina a ser exponencial, es común trazar una gráfica de línea en una escala logarítmica.

    En lugar de que el eje Y sea uniformemente lineal, esto cambiará cada intervalo para que sea exponencialmente más grande que el anterior.

    Esto da como resultado que las funciones exponenciales se tracen esencialmente como líneas rectas. Cuando se trata de este tipo de datos, es difícil entender los números exponenciales y puede hacerlo mucho más intuitivo trazando los datos de forma logarítmica.

    Usemos Numpy para generar una función exponencial y trazarla linealmente, como lo hicimos antes:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(0, 5, 10) # [0, 0.55, 1.11, 1.66, 2.22, 2.77, 3.33, 3.88, 4.44, 5]
    y = np.exp(x)  # [1, 1.74, 3.03, 5.29, 9.22, 16.08, 28.03, 48.85, 85.15, 148.41]
    
    plt.plot(x, y)
    plt.show()
    

    Esto crea una matriz, que tiene 10 de longitud y contiene valores entre 0..5. Luego usamos el exp() función de Numpy para calcular los valores exponenciales de estos elementos, lo que da como resultado una función exponencial en una escala lineal:

    Este tipo de función, aunque simple, es difícil de conceptualizar para los humanos, y los pequeños cambios pueden pasar fácilmente desapercibidos cuando se trata de grandes conjuntos de datos.

    Ahora, cambiemos la escala del eje Y a logarítmica:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(0, 5, 10)
    y = np.exp(x)
    
    plt.yscale('log')
    plt.plot(x, y)
    plt.show()
    

    Usando la instancia de PyPlot, plt, podemos establecer la escala de los ejes X e Y. Aquí, hemos configurado el eje Y en una escala logarítmica, a través del yscale() función.

    Aquí, también podríamos haber usado linear, log, logit y symlog. El valor predeterminado es linear.

    Ejecutar este código da como resultado:

    Personalización de gráficos de líneas en Matplotlib

    Puede personalizar fácilmente los gráficos de líneas regulares pasando argumentos a la plot() función.

    Por lo general, estos serán argumentos como linewidth, linestyle o color:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.random.randint(low=1, high=10, size=25)
    
    plt.plot(x, color="blue", linewidth=3, linestyle="dashed")
    plt.show()
    

    Esto resulta en:

    En vez de dashed valor, podríamos haber usado dottedo solid, por ejemplo. Sin embargo, también podríamos haber usado caracteres especiales como :, -, -- y -.:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.random.randint(low=1, high=10, size=25)
    
    plt.plot(x, color="blue", linewidth=3, linestyle="-.")
    plt.show()
    

    Esto resulta en:

    Hay muchos estilos de línea.

    Conclusión

    En este tutorial, hemos repasado varias formas de trazar una gráfica de línea usando Matplotlib y Python. También hemos cubierto cómo trazar en una escala logarítmica, así como cómo personalizar nuestros trazados de líneas.

    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 *