Introducción a la Librería Matplotlib de Python

Nosotros somos criaturas muy visuales, comprendemos mejor las cosas cuando las vemos visualizadas, sin embargo, el paso para presentar análisis, resultados o ideas puede ser un cuello de botella, es posible que ni siquiera sepas por dónde empezar o que tengas un formato en la mente pero luego dudes si ese es la forma correcta de presentar los datos es por esta razón que acá hablaremos sobre una de las librerías con las que cuenta Python para presentar los datos, matplotlib.

Probabilidad en Machine learning

Definición

Matplotlib es una librería de trazado utilizada para gráficos 2D en lenguaje de programación Python, es muy flexible y tiene muchos valores predeterminados incorporados que te ayudarán muchísimo en tú trabajo. Produce figuras de calidad de publicación en una variedad de formatos impresos y entornos interactivos. Como tal, no necesitas mucho para comenzar, solamente tienes que hacer las importaciones necesarias, preparar algunos datos y con esto puedes comenzar a trazar tu función con la ayuda de la instrucción plot(). Veamos esto en un ejemplo.

Primero importamos la librería, acá típicamente se le llama plt al momento de definirla.

Probabilidad en Machine learning

Instalación de Matplotlib

Para instalar matplotlib es muy simple, puedes consultar la página de instalación de la librería para obtener más información sobre cómo hacer este procedimiento en el sistema operativo que utilices, aunque puedes utilizar pip en caso de que lo sepas usar.

Probabilidad en Machine learning

Iniciar con Matplotlib

Como toda librería de Python lo primero es importarla y definirla en nuestro programa para ello utilizamos el nombre común que se le da que es plt.

				
					import matplotlib.pyplot as plt
				
			

Seguidamente preparamos algunos datos para graficarlos, esto fueron escogidos al azar.

				
					a = [1, 2, 3, 4] 
b = [11, 22, 33, 44]
				
			

Y finalmente grafiquemos estos datos utilizando la librería, acá definimos el color de la línea, así como también el grosor de la misma. De igual forma incluimos que nos muestre la leyenda de los datos.

				
					plt.plot(a, b, color='blue', linewidth=3, label='línea') 
plt.legend() 
plt.show()
				
			

Introducción-a-Matplotlib-parte-1-1

Y ya, de esta manera tan sencilla podemos graficar nuestros datos.

Al momento de graficar debes tener en cuenta las siguientes consideraciones:

Introducción-a-Matplotlib-parte-1-2

La figura es la ventana o página general en la que se dibuja todo, es el componente de nivel superior de todos lo que se considerará en los siguientes puntos. Puedes crear múltiples figuras independientes. Una figura puede tener otras cosas como por ejemplo un subtítulo, que es un título centrado de la figura, una leyenda, una barra de color, entre otras.

Introducción-a-Matplotlib-parte-1-3

A la figura le agregas los ejes. Los ejes es el área en la que se grafican los datos con funciones tales como plot() y scatter() y que pueden tener etiquetas asociadas. Toma en cuenta que las figuras pueden contener múltiples ejes.

Cada eje tiene un eje x y otro eje y, y cada uno de ellos contiene una numeración. También existen las etiquetas de los ejes, el título y la leyenda que se deben tener en cuenta cuando se quieren personalizar los ejes, pero también teniendo en cuenta que las escalas de los ejes y las líneas de la cuadrícula pueden ser útiles.

Introducción-a-Matplotlib-parte-1-5

Las líneas vertebrales son líneas que conectan las marcas de eje y que designan los límites del área de datos, en otras palabras, son el simple cuadrado que puedes ver cuando has inicializado los ejes, como en la imagen. Como puedes observar los extremos derecho y superior están configurados como invisibles.

algebra lineal en machine learning

Matplotlib – pyplot - pylab

Cuando se habla de matplotlib hablamos de todo el paquete de visualización de datos de Python.

Por su parte pyplot, es un módulo en el paquete matplotlib. Es por eso que a menudo observamos al momento de importar la librería matplotlib.pyplot. El módulo proporciona una interfaz que permite crear figuras y ejes de forma implícita y automática para lograr la trama deseada.

Este es especialmente útil cuando desees trazar rápidamente algo sin definir ninguna figura o eje, como pudimos ver en el ejemplo presentado anteriormente, en este no se ha especificado explícitamente los componentes, pero al final se lograron los objetivos que fue el de graficar los datos.

Por último, tenemos pylab, este es otro modulo que se instala junto al paquete matplotlib. Se recomienda su uso cuando se trabajaba con matrices, haciendo matemáticas de forma interactiva y se quiera tener acceso a las funciones de trazado. Es posible que todavía veas esta librería en tutoriales más antiguos y ejemplos de matplotlib, pero ya no se recomienda su uso, con el uso de los nuevos IDE y kernel que están disponible en la actualidad.

algebra lineal en machine learning

Datos para graficar en Matplotlib

Los datos de Machine Learning para graficar en matplotlib deberán estar estructurados bajo la librería de NumPy, por lo que es recomendable revisar esta librería, primeramente.

Cuando estés trabajando con Machine Learning, te encontrarás manipulando con muchos datos almacenados en matrices, por lo que es normal que uses la librería de NumPy para procesarlos. Con NumPy podrás realizar operaciones sobre ellos, inspeccionar sus matrices y manipularlas para que estés trabajando con el subconjunto de datos adecuado.

Por supuesto, las matrices no son lo único que puedes graficar, también existe la posibilidad de pasar listas de Python.

Esta es solo una breve introducción a matplotlib, en una próxima entrada veremos las gráficas que podemos obtener utilizando esta librería de visualización.

inteligencia artificial con aprendeia

Diagrama de línea

Este diagrama fue el que graficamos anteriormente, y como vimos con tres líneas de código puedes generar un gráfico básico usando matplotlib.

Pero adicional a esas tres líneas de código también podemos agregar un título y etiquetas a nuestro gráfico para darle más significado, inclusive puedes cambiar el ancho y el color de las líneas e incluir una cuadrícula en la figura.

				
					#Definir los datos
x1 = [3, 4, 5, 6]
y1 = [5, 6, 3, 4]
x2 = [2, 5, 8]
y2 = [3, 4, 3]

#Configurar las características del gráfico
plt.plot(x1, y1, label = 'Línea 1', linewidth = 4, color = 'blue')
plt.plot(x2, y2, label = 'Línea 2', linewidth = 4, color = 'green')

#Definir título y nombres de ejes
plt.title('Diagrama de Líneas')
plt.ylabel('Eje Y')
plt.xlabel('Eje X')

#Mostrar leyenda, cuadrícula y figura
plt.legend()
plt.grid()
plt.show()
				
			

Introducción-a-MAtplotlib-parte-2-2

Probabilidad en Machine learning

Gráfico de barras

Los gráficos de barras se usan para comparar datos entre diferentes categorías, estos se pueden representar horizontal o verticalmente. Veamos cómo podemos implementar este tipo de gráficos en matplotlib.

Como puedes observar en el código, la programación es muy parecida a la anterior, definimos los datos que vamos a graficar y configuramos las características del gráfica, acá la diferencia es que en vez de utilizar plt.plot() empleamos plt.bar() en donde le especificamos que vamos a graficar una figura de barras. El resto de instrucciones es exactamente igual.

				
					#Definir los datos
x1 = [0.25, 1.25, 2.25, 3.25, 4.25]
y1 = [10, 55, 80, 32, 40]
x2 = [0.75, 1.75, 2.75, 3.75, 4.75]
y2 = [42, 26, 10, 29, 66]

#Configurar las características del gráfico
plt.bar(x1, y1, label = 'Datos 1', width = 0.5, color = 'lightblue')
plt.bar(x2, y2, label = 'Datos 2', width = 0.5, color = 'orange')

#Definir título y nombres de ejes
plt.title('Gráfico de barras')
plt.ylabel('Eje Y')
plt.xlabel('Eje X')

#Mostrar leyenda y figura
plt.legend()
plt.show()

				
			

Introducción-a-MAtplotlib-parte-2-3

Probabilidad en Machine learning

Histogramas

Los histogramas se usan para mostrar una distribución, son útiles cuando tienes matrices o una lista muy larga. Veamos cómo podemos graficar este tipo de gráficos.

Para esta gráfica definimos los datos y a su vez un los bins que vendría siendo los compartimientos en donde estarán ubicados en nuestra gráfica los datos. A su vez acá empleamos la instrucción plt.hist() para representar esta gráfica y el resto de instrucciones es la misma que hemos utilizado con anterioridad.

				
					#Definir los datos
a = [22,55,62,45,21,22,34,42,42,4,2,102,95,85,55,110,120,70,65,55,111,115,80,75,65,54,44,43,42,48]
bins = [0,10,20,30,40,50,60,70,80,90,100]

#Configurar las características del gráfico
plt.hist(a, bins, histtype = 'bar', rwidth = 0.8, color = 'lightgreen')

#Definir título y nombres de ejes
plt.title('Histograma')
plt.ylabel('Eje Y')
plt.xlabel('Eje X')

#Mostrar figura
plt.show()
				
			

Introducción-a-MAtplotlib-parte-2-4

estadísticas en machine learning

Gráfico de dispersión

Los gráficos de dispersión se utilizaron para comparar variables, por ejemplo, cuánto una variable se ve afectada por otra variable y de esta forma se construye una relación a partir de ella. En esta gráfica los datos se muestran como una colección de puntos, cada uno con el valor de una variable que determina la posición en el eje horizontal y el valor de otra variable determina la posición en el eje vertical.

La gráfica se construye utilizando la instrucción plt.scatter() que significa dispersión en inglés, y el resto de las instrucciones son las mismas que hemos utilizado hasta ahora.

				
					#Definir los datos
x1 = [0.25, 1.25, 2.25, 3.25, 4.25]
y1 = [10, 55, 80, 32, 40]
x2 = [0.75, 1.75, 2.75, 3.75, 4.75]
y2 = [42, 26, 10, 29, 66]

#Configurar las características del gráfico
plt.scatter(x1, y1, label = 'Datos 1',color = 'red')
plt.scatter(x2, y2,label = 'Datos 2', color = 'purple')

#Definir título y nombres de ejes
plt.title('Gráfico de dispersión')
plt.ylabel('Eje Y')
plt.xlabel('Eje X')

#Mostrar leyenda y figura
plt.legend()
plt.show()
				
			

Introducción-a-MAtplotlib-parte-2-5

inteligencia artificial con aprendeIA

Gráfico circular

Este es un gráfico circular que se divide en segmentos, es decir, sectores de pastel, básicamente se usa para mostrar el porcentaje o los datos proporcionales en los que cada porción del pastel representa una categoría.

Igual que en los casos anteriores el procedimiento es muy parecido, en este caso se utiliza plt.pie() pero acá se debe especificar otras características para mejorar la presentación de la gráfica.

				
					#Definir los datos
dormir =[7,8,6,11,7]
comer = [2,3,4,3,2]
trabajar =[7,8,7,2,2]
recreación = [8,5,7,8,13]
divisiones = [7,2,2,13]
actividades = ['Dormir','Comer','Trabajar','Recreación']
colores = ['red','purple','blue','orange']

#Configurar las características del gráfico
plt.pie(divisiones, labels=actividades, colors=colores, startangle=90, shadow=True, explode=(0.1,0,0,0), autopct='%1.1f%%')

#Definir título
plt.title('Gráfico circular')

#Mostrar figura
plt.show()
				
			

Introducción-a-MAtplotlib-parte-2-6

Recuerda que todas las características disponibles para todas las gráficas se encuentra bien explicadas en la página web de la librería de matplotlib.

Matplotlib practica

Como puedes visualizar utilizar matplotlib para presentar tus datos es muy fácil, son solo unos pocos comandos que puedes implementar en tu código y tendrás una manera de graficar los datos. Estos  son solo los aspectos básicos de matplotlib, para que puedas empezar a implementarlo en tus proyectos de Machine Learning

Si te estás iniciando en la programación para Machine Learning y aún no te sientes tan diestro, te ofrezco un pack con las instrucciones básicas de Python, NumPy y Pandas. Estas guías serán de gran utilidad si estás comenzando ya que podrás recurrir a ella cada vez que no te acuerdes de alguna instrucción o no sepas hacer algo que es rutinario al momento de programar Machine Learning. Para descargar el pack con las guías solamente tienes que ingresar a este enlace.

8 comentarios en “Introducción a la Librería Matplotlib de Python”

  1. No entendía nada de matplotlib, hasta que vi tus videos 🙂 . Gracias, el código de gráfico circular tiene líneas demás :p

Deja un comentario

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