miad4.png

Hide 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.
../../../_images/6066dfd7253309e0388a80f9c87ae9f5ba8df88708c3f3c326ceb6192ce9b7d2.png

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.

Método

Tipo de visualización

scatter

Gráfico de dispersión

plot

Gráfico de línea

hist

Histogramas

bar

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.

Método

Descripción

set_xscale

Establece la escala del eje x

set_yscale

Establece la escala del eje y

set_axis_off

Elimina los ejes del gráfico

set_xlim

Establece límites para el rango del eje x

set_ylim

Establece límites para el rango del eje y

set_xticks

Establece cuales valores del eje x tendrán una etiqueta

set_yticks

Establecemos cuales valores del eje y tendrán una etiqueta

set_xticklabels

Establece los valores de las etiquetas de datos del eje x

set_yticklabels

Establece los valores de las etiquetas de datos del eje y

set_title

Agrega un título al gráfico

legend

Agrega una leyenda al gráfico

twinx

Genera un segundo eje vertical a la derecha del gráfico

twiny

Genera un segundo eje horizontal arriba del gráfico

grid

Agrega una grilla al gráfico cuando toma el valor True

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.
../../../_images/5e6bea3c0cacd608dc2b74f23d464c77c9325a50e1fc396ab7b25c8d41b47ed0.png

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.
../../../_images/900d957074e8b79da289a7202dccbb6705f75c822f318eac4a7b122a1f42cb55.png

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