Una introducción a Matplotlib en Python

Matplotlib es una biblioteca de gráficos de Python que los expertos en aprendizaje automático utilizan principalmente para crear visualizaciones estáticas e interactivas.

¿Qué es Matplotlib?

Mathplotlib es una creación de John D. Hunter en 2003 que se lanzó el 8 de mayo de 2021 y tiene una versión actual de 3.4.2.

Esta biblioteca está escrita principalmente en Python, mientras que el resto está escrito en C Objective y JavaScript, lo que la hace compatible con la plataforma.

Matplotlib usa NumPy, que es una extensión numérica de Python. Su extensión con NumPy agrega su viabilidad como alternativa de código abierto y lo convierte en una mejor preferencia que MATLAB.

Para las aplicaciones GUI de Python, Matplotlib permite el trazado de gráficos estáticos en él utilizando la API orientada a objetos que viene con.

Los usuarios pueden usar solo unas pocas líneas escritas de código Python para visualizar sus datos usando diferentes gráficos, incluidos gráficos de dispersión, histogramas, gráficos de barras, gráficos circulares, gráficos de líneas y gráficos de caja.

Puede usar Matplotlib para crear gráficos en entornos que incluyen Python shell, Jupyter notebook,
Jupyter lab y también usando Pycharm o Anaconda y en servidores de aplicaciones web como Flask y Django en varias plataformas.

Al igual que en MATLAB, puede controlar ampliamente los gráficos en términos de fuentes, líneas, colores y estilos.

Después de la breve introducción de la biblioteca Matplotib en Python, veamos cómo podemos configurarla en nuestros sistemas.

Configuración del entorno Matplotlib

Como cualquier otro paquete y biblioteca de Python, puede instalar la biblioteca Matplotlib precompilada y sus paquetes en todos los sistemas operativos con el administrador de paquetes pip.

Por supuesto, primero requiere que instale Python y el paquete pip en su sistema.

Los siguientes comandos muestran la versión de Python y pip para confirmar si estas herramientas ya están instaladas.

Comprobar si Python está instalado

Python --version

Comprobar si pip está instalado

pip -V

Instalar Mathplotlib

El siguiente comando instala el paquete Matplotlib desde Python Package Index (PyPI).

python -m pip install matplotlib

Este comando descarga e instala los paquetes relevantes de Matplotlib. Debería ver un mensaje de instalación exitosa después de que se complete la instalación.

Para asegurarse de que Matplotlib se haya instalado correctamente, escriba el siguiente comando, que mostrará la versión de Matplotlib en su símbolo del sistema.

import matplotlib
matplotlib.__version__

Los desarrolladores que deseen instalar el paquete Matplotlib sin compilar deben tener acceso al compilador correcto en su sistema, además de dependencias, scripts de instalación, archivos de configuración y parches.

Sin embargo, esta instalación particular de Matplolib sin compilar puede ser complicada, especialmente para los usuarios novatos de Matplotlib. Por lo tanto, ¿por qué no usar un comando de una línea para instalar la biblioteca en segundos?🤔

Después de la instalación de Matplotlib, importe el paquete a su entorno para acceder a sus utilidades.

Opciones de trazado de Matplotlib

Matplotlib proporciona numerosas opciones de trazado para visualizar datos. También permite la personalización de los gráficos al proporcionar diferentes temas, colores y opciones de paleta que el usuario puede usar para manipular los gráficos.

Estas opciones de trazado incluyen:

#1. Gráficos de barras

Los diagramas de barras, conocidos como gráficos de barras, son una opción adecuada para visualizar una comparación cuantitativa de valores dentro de la misma categoría.

Matplotlib representa este gráfico usando barras rectangulares donde sus longitudes y alturas representan sus valores proporcionales. Las barras pueden ser horizontales o verticales.

Matplotlib usa su función plt.bar() para crear el gráfico de barras.

Además, puede emplear más funciones para manipular este gráfico. Por ejemplo, las funciones plt.xlabel() y plt.ylabel() etiquetan los ejes x e y del gráfico, respectivamente.

La función plt.title() también le permite dar un título a su gráfico, mientras que la función plt.savefig() guarda el gráfico. La función plot.show(), que es la más importante, muestra el gráfico.

#2. Gráficos circulares

Puede visualizar la distribución proporcional de los elementos dentro de la misma categoría utilizando un gráfico estadístico circular que llamamos gráficos circulares.

Los gráficos circulares muestran datos en forma de porcentaje. El área completa del gráfico corresponde al porcentaje de los datos completos, mientras que los sectores individuales representan secciones del porcentaje de los datos.

Matplotlib usa la función plt.pie() que dibuja y ajusta los parámetros del gráfico circular.
Más parámetros como el autopct que imprime el valor del gráfico circular hasta 1 lugar decimal son útiles para trazar gráficos circulares.

Las organizaciones comerciales encuentran útiles los gráficos circulares para presentar información relevante como operaciones, ventas o recursos.

#3. Histograma

Un histograma muestra la distribución de datos numéricos. Utiliza intervalos continuos para dividir los datos en distintas secciones.

La principal diferencia entre un histograma y un diagrama de barras es el tipo de datos que manejan. Mientras que los histogramas manejan el tipo de datos continuos, los diagramas de barras manejan datos categóricos en su lugar.

Matplotlib usa la función hist() que usa una matriz de valores aleatorios o definidos para crear el histograma.

#4. Gráficos de línea

Estos gráficos son útiles para mostrar la relación entre dos valores de datos que definimos como numéricos y categóricos, sobre una base X e Y.

Los diagramas de líneas son significativos para rastrear el cambio de los valores de los datos durante algún tiempo.

#5. Gráfico de dispersión

Los diagramas de dispersión señalan la relación, incluida la correlación entre las variables de los datos. También es útil para identificar valores atípicos.

Los diagramas de dispersión usan puntos para representar la relación de las variables de datos y cómo un cambio en una variable puede afectar a otra.

Cómo crear parcelas en Matplotlib

Matplotlib usa diferentes funciones para crear diferentes gráficos. También utiliza muy pocas líneas de código para crear la trama.

A continuación, vemos cómo crear las diferentes opciones de trazado utilizando diferentes funciones en Matplotlib.

#1. Diagrama de barras en Matplotlib

Los diagramas de barras, como se explicó anteriormente, muestran categorías de datos mediante barras y ejes que representan una comparación de categorías en un eje y los valores correspondientes de las categorías en el otro eje.

La función bar() en Matplotlib toma diferentes diseños de argumentos para describir el diseño de las barras, como se muestra a continuación.

plt.bar(x, y, height, width, bottom, align)

Los parámetros x e y representan los valores de las coordenadas x y los valores de las coordenadas y de la barra en el gráfico. El parámetro de ancho representa el ancho de la barra, mientras que el parámetro de altura representa la altura de la barra.

Por ejemplo, representemos el número de perros y gatos en un refugio de animales llamado x.

import matplotlib.pyplot as plt
import numpy as np

x = ["Cats", "Dogs"]
plt.xlabel("Cats and Dogs in Shelter")
plt.ylabel("No. of animals in Shelter")
plt.title("Number of cats and dogs in shelter x")
y = [300, 350]
plt.bar(x, y, color="black", width = 0.5)

Producción:

Salida del gráfico de barras en Mathplotlib

Como en nuestro ejemplo anterior, puede especificar aún más el color de las barras utilizando el atributo de color. Además, plt.xlabel y p.ylabel nombran los ejes x e y, respectivamente, mientras que plt.title nombra el gráfico.

#2. Cómo crear un gráfico circular

Matplotlib usa la función pie() que viene con el módulo pyplot para trazar un gráfico circular.
La función representa los datos para graficar en forma de matriz.

Sintaxis:

matplotlib.pyplot.pie(data, explode=None, labels=None, colors=None, autopct=None, shadow=False)

El parámetro de colores establece el color de los sectores circulares. Puede utilizar una matriz de valores para especificar un color para cada sector.

Para incluir más detalles de cada porción en el pastel, el argumento autopct agrega los porcentajes numéricos que representa cada porción utilizando la notación de formato de cadena de Python. Explotar como argumento acepta una matriz de valores que comienzan desde 0.1 para definir la distancia del sector desde el centro del pastel.

Tracemos un gráfico circular que muestre los recursos en porcentaje asignado para un proyecto en particular.

import matplotlib.pyplot as plt
import numpy as np

y = np.array([25, 10, 45, 20])
mylabels = ["w", "x", "y", "z"]
explodevalues = [0.1, 0.2, 0, 0]
colors = ['tab:blue', 'tab:green', 'tab:orange', 'tab:red']
plt.title("Resources allocated for a random project")
plt.pie(y, labels = mylabels, colors=colors,explode = explodevalues, autopct="%1.1f%%", shadow = True)
plt.show() 

Producción:

Salida de gráfico circular en Mathplotlib

El gráfico anterior muestra un gráfico circular con cuatro sectores etiquetados como w, x, y y z, respectivamente. Los valores de explosión definen qué tan lejos del centro del gráfico circular se colocarán las porciones.

En el gráfico anterior, x está más lejos porque su valor de explosión es mayor que el resto. El atributo de sombra agrega una sombra al gráfico circular como en la imagen, mientras que autopct establece el porcentaje relativo a todo el gráfico que representa cada sector.

#3. Creación de un gráfico de histograma

Con un histograma, usaremos una serie de intervalos para representar el rango de los valores dados en el eje x.
El eje y, por otro lado, representará la información de frecuencia.

A diferencia de los otros gráficos, trazar un histograma en Matplotlib requiere algunos pasos predefinidos que debe seguir para crear el gráfico.

Estos pasos incluyen:

  • Cree un contenedor de rangos a partir del conjunto de valores de datos que tiene. Puede usar la función np.random.normal() que puede generar valores aleatorios para usted.
  • Usando una serie de intervalos, distribuya los valores en un rango de valores.
  • Cuente los valores que caen dentro de cada intervalo particular.
  • Ahora use la función matplotlib.pyplot.hist() para crear el histograma.
  • La función hist() toma varios parámetros, incluyendo:

    x – Esto representa la secuencia de la matriz

    bins: este es un parámetro opcional que representa intervalos de variables que no se superponen y que pueden contener números enteros o una secuencia de cadenas.

    rango: define el rango superior e inferior de los contenedores

    align: este parámetro controla la alineación del histograma. Ya sea izquierda, derecha o media.

    color – Define el color de las barras.

    rwidth: establece el ancho relativo de las barras en el histograma al del contenedor.

    log: el parámetro log define una escala logarítmica en el eje de un histograma.

    El siguiente ejemplo traza un histograma con los valores definidos.

    from matplotlib import pyplot as plt
    
    x = [22, 40, 87, 5, 43, 30, 56,73, 55, 54, 11, 20, 51, 5,  50, 60, 70, 80]
    
    plt.hist(x)
    plt.title(Histogram plot example')
    plt.xlabel('x axis')
    plt.ylabel('frequency')
    plt.show()
    

    Producción:

    Salida del diagrama de histograma en Mathplotlib

    #4. Gráfico de líneas en Matplotlib

    Matplotlib usa su sub-biblioteca llamada pyplot, que viene con varias funciones que ayudan con su implementación.

    Usamos la función plot(), que es una función genérica que viene con pyplot para trazar los diagramas de líneas y otros tipos diferentes de diagramas de líneas, incluidos los diagramas curvos y los diagramas de líneas múltiples. La creación de estos diferentes tipos de gráficos depende de los valores que pase al eje y.

    Al trazar, importe matplotlib.pyplot y Numpy, que dibujan los gráficos. El método plot(x,y) crea el gráfico de líneas pasando valores aleatorios a los argumentos x e y.

    Además, puede pasar una variable de etiqueta que etiquete la trama. La función de título nombra además el título de la trama, mientras que las funciones xlabel e ylabel nombran los ejes. Finalmente, la función show() muestra el gráfico.

    Por ejemplo:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(0, 5, 10)
    
    y = 3*x + 2
    plt.title('Line plot example')
    plt.xlabel('x axis')
    plt.ylabel('y axis')
    plt.plot(x, y)
    plt.show()

    Resultado:

    Salida del gráfico de líneas en Mathplotlib

    El atributo np.linspace devuelve en el gráfico un conjunto de números espaciados uniformemente durante un intervalo particular para los valores de x. Esto creará una matriz de 10 valores en el rango de 0 y 5. Los valores de y se crean a partir de la ecuación que usa los valores correspondientes de x.

    Creación de diagramas de dispersión

    Matplotlib usa el método scatter() para crear este gráfico.
    Este método toma los siguientes parámetros.

    matplotlib.pyplot.scatter(x_axis_data, y_axis_data, s=None, c=None, marker=None, cmap=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None) 

    Los parámetros x_axis_data y y_axis_data no se pueden dejar en blanco, a diferencia del resto de parámetros que pueden ser opcionales y tener como valor None. Mientras que el argumento x_axis_data define una matriz de datos para el eje x, y_axis_data establece una matriz de datos para el eje y.

    Un ejemplo de un diagrama de dispersión en matplotlib

    import matplotlib.pyplot as plt
     
    x =[15, 17, 18, 27, 22, 27, 32, 14, 11, 12, 29, 16]
     
    y =[19, 16, 17, 18, 10, 26, 13, 27, 14, 18, 17, 35]
    plt.title('Scatter plot example')
    plt.xlabel('x variable')
    plt.ylabel('y variable')
    plt.scatter(x, y, c ="green")
     
    # To show the plot
    plt.show()

    Su salida será como:

    Salida de diagrama de dispersión en Mathplotlib

    ¿Qué es subtrama () en matplotlib?

    La función subplot() se puede usar para dibujar múltiples gráficos en una sola figura de Matplotlib. Esto permite ver y comparar múltiples gráficos dentro de la figura.

    Esta función devolverá una tupla con tres argumentos; filas y columnas como primer y segundo argumento, respectivamente, y el índice de la trama actual como tercer argumento.

    Las filas y columnas definen claramente el diseño de Matplotlib.

    Por lo tanto, plt.subplot(2, 1, 1), por ejemplo, trazará una figura de Matplotlib con dos filas y una columna, y esta gráfica será la primera gráfica.

    Por otro lado, plt.subplot(2, 1, 2) muestra una segunda gráfica con dos filas y una columna.

    Trazar estos dos gráficos los creará uno encima del otro, como en el ejemplo a continuación.

    import matplotlib.pyplot as plt
    import numpy as np
    
    #plot 1:
    x = np.array([2, 4, 6, 8])
    y = np.array([3, 6, 9, 12])
    
    plt.subplot(2, 1, 1)
    plt.plot(x,y)
    
    #plot 2:
    x = np.array([3, 6, 9, 12])
    y = np.array([1, 2, 3, 4])
    
    plt.subplot(2, 1, 2)
    plt.plot(x,y)
    
    plt.show()

    La salida del ejemplo anterior se verá como la imagen de abajo.

    Usando un ejemplo diferente, usemos la función subplot para trazar dos figuras con una fila y dos columnas. Esto mostrará las parcelas una al lado de la otra.

    import matplotlib.pyplot as plt
    import numpy as np
    
    #plot 1:
    x = np.array([2, 4, 6, 8])
    y = np.array([3, 6, 9, 12])
    
    plt.subplot(1, 2, 1)
    plt.plot(x,y)
    
    #plot 2:
    x = np.array([3, 6, 9, 12])
    y = np.array([1, 2, 3, 4])
    
    plt.subplot(1, 2, 2)
    plt.plot(x,y)
    
    plt.show()

    El ejemplo anterior mostrará el siguiente resultado.

    Bueno, eso fue interesantemente interactivo, ¿no lo crees? 😃

    Ultimas palabras

    Matplotlib es una biblioteca de visualización muy utilizada en Python. Su interactividad y facilidad de uso, incluso para principiantes, la convierten en una herramienta aún mejor para trazar en Python.

    Este artículo cubrió ejemplos de los diversos gráficos que pueden crear las funciones que vienen con Matplotlib, incluidos gráficos circulares, gráficos de barras, histogramas y gráficos de dispersión.

    Por supuesto, Python tiene varias otras bibliotecas que los expertos en aprendizaje automático y los científicos de datos pueden usar para crear visualizaciones.

    Puede explorar más gráficos que puede crear con Matplotlib y qué funciones usará para crear el gráfico.

    ¡Feliz trama! 📉📊