8.4.4 Tipos de gráficos
Mediante matplotlib podemos hacer prácticamente cualquier tipo de gráfico. En esta sección haremos un repaso por algunos de ellos.
Gráficos de barras
Vamos a partir de un «dataset» que contiene los resultados de los Juegos Olímpicos de Tokio 2020. Hemos descargado el fichero medals.xlsx desde una página de Kaggle[1].
En primer lugar cargaremos este fichero en un DataFrame y haremos una pequeña «limpieza»:
A continuación crearemos un gráfico de barras con las medallas de oro, plata y bronce de los 10 primeros países ordenados por su ranking. Lo primero será crear el subconjunto de datos sobre el que vamos a trabajar. Hay muchas maneras de hacerlo. Una de ellas:
Ejercicio
Partiendo del fichero tiobe-2020-clean.csv que contiene las valoraciones de los lenguajes de programación más usados durante el año 2020 (según el índice TIOBE)[2], cree el siguiente gráfico de barras:
Gráficos de dispersión
Para este gráfico vamos a usar un «dataset» de jugadores de la NBA extraído desde esta página de Kaggle. El fichero nba-data.csv contiene información desde 1996 hasta 2019.
En primer lugar cargamos los datos y nos quedamos con un subconjunto de las columnas:
El objetivo es crear un gráfico de dispersión en el relacionaremos los puntos anotados con los rebotes capturados, así como las asistencias dadas:
Del gráfico anterior cabe destacar varios aspectos:
- Normalización: Cuando aplicamos una estética de color al gráfico basada en los datos de una variable, debemos normalizar dicha variable en el mapa de color («colormap») que elijamos. Para ello, matplotlib nos ofrece la normalización de mapas de color. En el caso concreto de scatterQ pasaríamos esta normalización mediante el parámetro norm pero también podemos usar los parámetros vmin y vmax.
- Barra de color: Se trata de una leyenda particular en la que mostramos el gradiente de color vinculado a una determinada estética/variable del gráfico. Matplotlib también nos permite personalizar estas barras de color.
Ejercicio
Partiendo del fichero bmw-clean.csv que contiene información sobre vehículos de la marca BMW, cree el siguiente gráfico de dispersión:
El mapa de color que se ha usado es plasma_r.
Histogramas
En esta ocasión vamos a trabajar con un «dataset» de «Avengers» extraído desde Kaggle. Hemos descargado el fichero avengers.csv.
Como punto de partida vamos a cargar la información y a quedarnos únicamente con la columna que hace referencia al año en el que se crearon los personajes:
Igualmente haremos un pequeño filtrado para manejar sólo registros a partir de 1960:
Ahora ya podemos construir el histograma, que va a representar las frecuencias absolutas de creación de personajes Marvel según su año de creación.
Aunque es posible indicar un número determinado de contenedores («bins»), en este caso vamos a especificar directamente los intervalos (cada 5 años):
Y a continuación el código necesario para montar el gráfico:
Descargo de responsabilidad: Técnicamente este gráfico no es un histograma ya que los años (fechas en general) no representan categorías válidas, pero sirve a efectos demostrativos de cómo se construyen este tipo de diagramas.
Ejercicio
Partiendo del fichero pokemon.csv que contiene información sobre Pokemon, cree el siguiente histograma en el que se analiza el número de personajes «pokemons» en función de su velocidad (columna Speed):