
Show code cell source
import os
# Por precaución, cambiamos el directorio activo de Python a aquel que contenga este notebook
if "PAD-book" in os.listdir():
os.chdir(r"PAD-book/Laboratorio-Computacional-de-Analytics/S2 - Funciones, manejo de archivos y visualizacion/S2.TU3/")
Visualización básica#
Visualizar datos a través de mapas o gráficos permite identificar tendencias, patrones y valores atípicos. Usualmente utilizamos las visualizaciones para decidir cómo orientar nuestro análisis.
En este tutorial establecemos nociones fundamentales sobre el uso del paquete matplotlib para visualizar datos.
Requisitos#
Para desarrollar este tutorial necesitarás:
Utilizar estructuras de datos y de control
Objetivos#
Al final de este tutorial podrás:
1. Realizar visualizaciones de datos utilizando la librería matplotlib.
1. Librería matplotlib#
matplotlib es una librería de uso abierto para el lenguaje Python, que soporta visualizaciones estáticas, animadas e interactivas.
Te recomendamos importar el módulo matplotlib.pyplot utilizando el nombre plt (su alias más usado), como se muestra a continuación.
import matplotlib.pyplot as plt
1.1. Declarar una visualización#
Para declarar una visualización utilizamos el método subplots del módulo matplotlib.pyplot. Este nos permite crear un objeto de tipo figure (fig) para establecer el lienzo sobre el cual colocaremos un gráfico y un objeto de tipo axes(ax) que hace referencia a un gráfico.
fig, ax = plt.subplots()
Asimismo, podemos colocar más de un gráfico en un mismo lienzo. Para esto, ingresamos por parámetro el número de filas (n) y el número de columnas (m) en las que queremos dividir el lienzo.
fig, ax = plt.subplots(n,m)
A continuación, mostramos un ejemplo de la declaración de una visualización cuyo lienzo permite colocar dos gráficos, uno encima del otro:
fig, ax = plt.subplots(2,1) # Declaramos la visualización.
grafico1 = ax[0].plot( # Declaramos el gráfico 1.
[1,2,3,4], # Asginamos valores al eje x.
[1,4,8,10], # Asginamos valores al eje y.
color='blue' # Modificamos el color del gráfico.
)
grafico2 = ax[1].plot( # Declaramos el gráfico 2.
[1,2,3,4], # Asginamos valores al eje x.
[1,5,7,9], # Asginamos valores al eje y.
color='green' # Modificamos el color del gráfico.
)
plt.show() # Utilizamos el método show para mostrar la visualización.
1.2. Tipos de visualización#
La siguiente tabla asocia algunos de los métodos del objeto ax con el respectivo tipo de visualización que genera.
|
Gráfico de dispersión |
|
Gráfico de línea |
|
Histogramas |
|
Gráfico de barras |
1.3. Métodos para editar los gráficos#
A continuación, presentamos los principales métodos para editar un objeto de tipo axes.
|
Establece la escala del eje x |
|
Establece la escala del eje y |
|
Elimina los ejes del gráfico |
|
Establece límites para el rango del eje x |
|
Establece límites para el rango del eje y |
|
Establece cuales valores del eje x tendrán una etiqueta |
|
Establecemos cuales valores del eje y tendrán una etiqueta |
|
Establece los valores de las etiquetas de datos del eje x |
|
Establece los valores de las etiquetas de datos del eje y |
|
Agrega un título al gráfico |
|
Agrega una leyenda al gráfico |
|
Genera un segundo eje vertical a la derecha del gráfico |
|
Genera un segundo eje horizontal arriba del gráfico |
|
Agrega una grilla al gráfico cuando toma el valor |
1.4. Gráfico de barras#
Queremos comparar las ventas anuales (en USD) de dos productos durante los últimos 5 años. Para esto, crearemos un gráfico de barras.
fig, ax = plt.subplots() # Declaramos la visualización.
etiquetas = ['2016', '2017', '2018', '2019', '2020'] # Declaramos las etiquetas del eje x (años).
producto_a = [20000, 40000, 35000, 45000, 60000] # Declaramos los registros de las ventas del producto A.
producto_b = [55000, 40000, 20000, 22000, 17000] # Declaramos los registros de las ventas del producto B.
ancho = 0.35 # Definimos el ancho de las barras.
pos_bar_a = [i - ancho/2 for i in range(len(etiquetas))]# Ubicación de cada barra en A.
pos_bar_b = [i + ancho/2 for i in range(len(etiquetas))]# Ubicación de cada barra en B.
# Serie de datos correspondiente al producto A.
serie_a = ax.bar(pos_bar_a, # Definimos la ubicación de cada barra.
producto_a, # Asignamos los registros correspondientes a las barras.
ancho, # Asignamos el ancho de cada barra.
label = 'Producto A', # Definimos un nombre para la serie A.
color = 'lightsteelblue') # Modificamos el color de las barras.
# Serie de datos correspondiente al producto B.
serie_b = ax.bar(pos_bar_b, # Definimos la ubicación de cada barra.
producto_b, # Asignamos los registros del producto A a las barras.
ancho, # Asignamos el ancho de cada barra.
label = 'Producto B', # Definimos un nombre para la serie A.
color = 'navy') # Modificamos el color de las barras.
ax.set_xticks([*range(len(etiquetas))]) # Establecemos cuales valores del eje x tendrán una etiqueta.
ax.set_xticklabels(etiquetas) # Establecemos las etiquetas del eje x.
ax.legend() # Declaramos la leyenda de los datos.
plt.show() # Utilizamos el método show para mostrar la visualización.
1.5. Gráfico de Dispersión#
A continuación, crearemos un gráfico de dispersión.
fig, ax = plt.subplots() # Declaramos la visualización.
# Serie de datos 1.
serie_1 = ax.scatter(
[1,2,3,4], # Declaramos las coordenadas del eje x.
[1,4,8,10], # Declaramos las coordenadas del eje y.
color='blue', # Modificamos el color de los puntos.
label='Serie 1' # Definimos un nombre para la serie 1.
)
# Serie de datos 2.
serie_2 = ax.scatter(
[1,2,3,4], # Declaramos las coordenadas del eje x.
[1,5,7,9], # Declaramos las coordenadas del eje y.
color='green', # Modificamos el color de los puntos.
label='Serie 2' # Definimos un nombre para la serie 2.
)
ax.set_xscale('linear') # Establecemos una escala lineal para el eje x.
ax.set_yscale('linear') # Establecemos una escala lineal para el eje y.
ax.set_title('Gráfico de dispersión') # Definimos un título para la visualización.
ax.grid(True) # Agregamos una grilla al gráfico.
ax.legend() # Modificamos el color del gráfico.
plt.show() # Utilizamos el método show para mostrar la visualización.
Referencias#
Matplotlib (2020). Matplotlib: Python plotting. Recuperado el 11 de febrero de 2020 de: https://matplotlib.org/
Créditos#
Autores: Juan David Reyes Jaimes, Alejandro Mantilla Redondo, Diego Alejandro Cely Gómez
Fecha última actualización: 12/07/2022