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 *