Los mapas de calor en fútbol son representaciones gráficas que muestran la distribución y la intensidad de la actividad de los jugadores en el campo durante un partido. Estos mapas proporcionan información visual sobre las áreas donde un jugador pasa más tiempo o tiene más influencia en el juego, ya sea atacando o defendiendo. Se crean utilizando datos recopilados a través de tecnologías como sistemas de seguimiento de jugadores, cámaras y dispositivos GPS.
Los colores en el mapa de calor representan la intensidad de la actividad en una determinada área. Por lo general, se utiliza una escala de colores que va desde colores más fríos (como el azul o el verde) para indicar áreas con menor actividad, hasta colores más cálidos (como el rojo o el amarillo) para resaltar áreas con mayor actividad.
Los mapas de calor son herramientas útiles para analizar el rendimiento de los jugadores y los equipos. Los entrenadores y analistas pueden utilizarlos para evaluar patrones de juego, identificar áreas de fortaleza o debilidad, y tomar decisiones estratégicas basadas en datos concretos. También son populares entre los aficionados para visualizar la contribución de los jugadores en diferentes partes del campo durante un partido.
En este post vamos a aprender como crear mapas de calor utilizando pocas líneas de código, obteniendo los datos de SofaScore gracias a la librearía Scraper FC
Importación de librerías
import ScraperFC as sfc
import pandas as pd
import matplotlib.pyplot as plt
from mplsoccer.pitch import Pitch
Invocamos al módulo de Sofascore
scraper = sfc.Sofascore()
scraper
Ingresamos la URL del partido y el nombre del jugador a analizar
Recuerda omitir los caracteres id: de la cadena de la url y escribir el nombre exacto del jugador tal como te muestra Sofascore en la página del partido.
partido = 'https://www.sofascore.com/arsenal-sheffield-united/psR#11352560'
jugador = 'Martin Ødegaard'
Obtenemos y almacenamos la data del jugador
heatmap = scraper.get_player_heatmap(partido, player=jugador)
heatmap
Generamos el mapa de calor
fig, ax = plt.subplots(figsize=(16,9))
cmap = 'hot'
pitch = Pitch(pitch_type='opta')
pitch.draw(ax=ax)
pitch.kdeplot(heatmap.x, heatmap.y,ax=ax,
levels=100,
fill=True,
zorder=-1,
shade_lowest=True,
cmap='YlOrBr')
# Agregar flecha hacia la derecha
arrow_props = dict(facecolor='black', arrowstyle='<-')
ax.annotate('', xy=(0.5, 1), xytext=(0.6, 1),
arrowprops=arrow_props, fontsize=12, ha='center', va='center', xycoords='axes fraction')
# Agregar título en la parte superior izquierda
titulo = "Martin Ødegaard - Sheffield United vs. Arsenal"
ax.text(0.04, 1, titulo, fontsize=14, ha='left', va='center', transform=ax.transAxes)
plt.show()
Puedes modificar el color del Mapa, para esto visita el siguiente enlace https://matplotlib.org/stable/users/explain/colors/colormaps.html en donde tienes una amplia gama de opciones de colores, por ejemplo en este caso se modificó el color YlOrBr por magma.
El código utilizado lo puedes revisar y descargar desde mi repositorio de GitHub. Estaré muy agradecido si me ayudas a compartir este post 🙂