{"id":1236,"date":"2025-12-17T20:08:12","date_gmt":"2025-12-17T17:08:12","guid":{"rendered":"http:\/\/api-sport.pro\/?p=1236"},"modified":"2025-12-17T20:08:12","modified_gmt":"2025-12-17T17:08:12","slug":"como-crear-una-visualizacion-de-datos-deportivos-mapa-de-calor-mapa-de-pases","status":"publish","type":"post","link":"https:\/\/api-sport.pro\/es\/como-crear-una-visualizacion-de-datos-deportivos-mapa-de-calor-mapa-de-pases\/","title":{"rendered":"\u00bfC\u00f3mo crear una visualizaci\u00f3n de datos deportivos (mapa de calor, mapa de pases)?"},"content":{"rendered":"<div class=\"table-of-contents\">\n<div class=\"table-of-contents-title\">Contenidos<\/div>\n<ul class=\"table-of-contents-ul\">\n<li class=\"table-of-contents-li\"><a class=\"table-of-contents-a\" href=\"#contents-1\">\u00bfQu\u00e9 es un mapa de calor y un mapa de pases en el an\u00e1lisis deportivo?<\/a><\/li>\n<li class=\"table-of-contents-li\"><a class=\"table-of-contents-a\" href=\"#contents-2\">\u00bfQu\u00e9 APIs de datos deportivos usar para la visualizaci\u00f3n del f\u00fatbol?<\/a><\/li>\n<li class=\"table-of-contents-li\"><a class=\"table-of-contents-a\" href=\"#contents-3\">\u00bfC\u00f3mo obtener datos de partidos a trav\u00e9s de API para construir mapas de calor de jugadores?<\/a><\/li>\n<li class=\"table-of-contents-li\"><a class=\"table-of-contents-a\" href=\"#contents-4\">\u00bfC\u00f3mo crear un mapa de calor de tiros y acciones de jugadores utilizando datos de API?<\/a><\/li>\n<li class=\"table-of-contents-li\"><a class=\"table-of-contents-a\" href=\"#contents-5\">\u00bfC\u00f3mo construir un mapa de pases de los pases del equipo basado en la API de eventos?<\/a><\/li>\n<li class=\"table-of-contents-li\"><a class=\"table-of-contents-a\" href=\"#contents-6\">Herramientas y bibliotecas para visualizar datos deportivos de APIs (Python, JavaScript)<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"universal_article\">\n<h2 id=\"contents-1\">\u00bfQu\u00e9 es un mapa de calor y un mapa de pases en el an\u00e1lisis deportivo?<\/h2>\n<p>Un mapa de calor en el an\u00e1lisis deportivo es un mapa de calor que muestra la concentraci\u00f3n de acciones en la cancha o el campo. La escala de colores refleja la densidad de eventos: cuanto m\u00e1s caliente es el \u00e1rea, m\u00e1s a menudo ocurrieron tiros, entradas, pases o toques de bal\u00f3n all\u00ed. En un campo de f\u00fatbol, esto ayuda a ver literalmente el estilo del equipo: alta presi\u00f3n, juego por las bandas, carga del \u00e1rea penal o control en el centro.<\/p>\n<p>Un mapa de pases es un mapa de pases que muestra la direcci\u00f3n y frecuencia de los pases entre jugadores. T\u00edpicamente, el diagrama muestra las posiciones de los futbolistas, l\u00edneas entre ellos y el grosor de las l\u00edneas relacionado con el n\u00famero de pases. Tal visualizaci\u00f3n permite evaluar a trav\u00e9s de qui\u00e9n se construye el ataque, c\u00f3mo funciona el primer pase, cu\u00e1n activamente se utilizan los laterales y si hay un sesgo hacia una de las zonas.<\/p>\n<p>Ambas visualizaciones son cr\u00edticas para el scouting, an\u00e1lisis t\u00e1ctico, preparaci\u00f3n de partidos y apuestas. Ayudan a tomar decisiones basadas en datos reales en lugar de impresiones subjetivas. Para construir sistem\u00e1ticamente mapas de calor y mapas de pases sin entrada manual, es necesaria una fuente confiable de estad\u00edsticas de eventos: una API de datos deportivos. Este es el tipo de acceso program\u00e1tico a partidos, equipos, jugadores y estad\u00edsticas que proporciona la plataforma. <a href=\"http:\/\/api-sport.pro\/es\/\">API de datos deportivos api-sport.ru<\/a>, apoyando el f\u00fatbol, baloncesto, hockey, tenis, tenis de mesa, esports y otros deportes.<\/p>\n<\/div>\n<div class=\"universal_article\">\n<h2 id=\"contents-2\">\u00bfQu\u00e9 APIs de datos deportivos usar para la visualizaci\u00f3n del f\u00fatbol?<\/h2>\n<p>Para construir mapas de calor visuales y mapas de pases para el f\u00fatbol, tres grupos de datos son importantes: informaci\u00f3n del partido, estad\u00edsticas detalladas y eventos durante el juego. Dentro de la API de Eventos Deportivos en el dominio api.api-sport.ru, esto se implementa a trav\u00e9s de la familia de endpoints v2. Te permiten obtener una lista de partidos, informaci\u00f3n detallada sobre un partido espec\u00edfico, alineaciones de equipos, estad\u00edsticas avanzadas e incluso cuotas de casas de apuestas a trav\u00e9s del bloque oddsBase.<\/p>\n<p>Las solicitudes b\u00e1sicas se realizan a endpoints del tipo v2 football matches y v2 football matches {matchId}. En la respuesta, recibes un objeto Match con campos torneo, equipos, puntuaci\u00f3n, lugar y, lo m\u00e1s importante, un array matchStatistics con desgloses por per\u00edodos y grupos de m\u00e9tricas. Contiene m\u00e9tricas clave para la visualizaci\u00f3n: posesi\u00f3n del bal\u00f3n, tiros totales, tiros a puerta, toques en el \u00e1rea penal, pases en el tercio final, pases precisos y mucho m\u00e1s. Estos datos pueden ser agregados por \u00e1reas del campo y utilizados como base para mapas de calor y mapas de pases.<\/p>\n<p>Un endpoint separado v2 football matches {matchId} events devuelve la cronolog\u00eda de liveEvents: goles, tarjetas, sustituciones y otros eventos importantes. A partir de ellos, se forman l\u00edneas de tiempo y gr\u00e1ficos combinados. En proyectos avanzados, el flujo de eventos se puede obtener c\u00f3modamente en tiempo real a trav\u00e9s de WebSocket. El soporte de WebSocket ya est\u00e1 en los planes de desarrollo del servicio. <a href=\"http:\/\/api-sport.pro\/es\/\">api-sport.pro<\/a>, que abrir\u00e1 el camino para mapas de calor en l\u00ednea y mapas de pases en vivo justo durante el partido. Adem\u00e1s, la API de casas de apuestas con cuotas permite superponer la din\u00e1mica del mercado sobre la visualizaci\u00f3n.<\/p>\n<\/div>\n<div class=\"universal_article\">\n<h2 id=\"contents-3\">\u00bfC\u00f3mo obtener datos de partidos a trav\u00e9s de API para construir mapas de calor de jugadores?<\/h2>\n<p>El primer paso para cualquier mapa de calor es obtener datos precisos del partido. En la API de Eventos Deportivos, esto se hace utilizando el endpoint v2 football matches {matchId}. En la respuesta, recibes un \u00fanico objeto Match, que ya contiene equipos, alineaciones con la posici\u00f3n de cada jugador en el objeto de alineaci\u00f3n, la puntuaci\u00f3n actual, el estado del partido y un array matchStatistics con estad\u00edsticas detalladas por per\u00edodos ALL, 1ST, 2ND.<\/p>\n<p>Para enviar solicitudes a la API, se requiere una clave de autorizaci\u00f3n. Puede generarse en la secci\u00f3n segura de la plataforma en <a href=\"https:\/\/app.api-sport.ru\">tu cuenta personal en api-sport.ru<\/a>. Despu\u00e9s de eso, basta con pasar la clave en el encabezado Authorization. A continuaci\u00f3n se muestra un ejemplo de obtenci\u00f3n de informaci\u00f3n detallada sobre un partido de f\u00fatbol por ID en un navegador o Node.js utilizando fetch.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\" data-no-translation=\"\">\nconst API_KEY = '\u0412\u0410\u0428_API_\u041a\u041b\u042e\u0427';\nconst matchId = 14570728;\nfetch('https:\/\/api.api-sport.ru\/v2\/football\/matches\/' + matchId, {\n  headers: {\n    Authorization: API_KEY\n  }\n})\n  .then(r =&gt; r.json())\n  .then(match =&gt; {\n    \/\/ \u041e\u0431\u0449\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043c\u0430\u0442\u0447\u0435\n    console.log(match.homeTeam.name, 'vs', match.awayTeam.name);\n    \/\/ \u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0435 \u043f\u043e \u0432\u0441\u0435\u043c \u043f\u0435\u0440\u0438\u043e\u0434\u0430\u043c\n    const allPeriod = match.matchStatistics.find(s =&gt; s.period === 'ALL');\n    const shotsGroup = allPeriod.groups.find(g =&gt; g.groupName === 'Shots');\n    console.log('\u0412\u0441\u0435\u0433\u043e \u0443\u0434\u0430\u0440\u043e\u0432 \u0445\u043e\u0437\u044f\u0435\u0432:', shotsGroup.statisticsItems.find(i =&gt; i.key === 'totalShotsOnGoal').homeValue);\n  });\n<\/pre>\n<p>En la siguiente etapa, los datos de matchStatistics pueden transformarse en una matriz de actividad por zonas. Para un mapa de calor simple, se utilizan m\u00e9tricas agregadas. Por ejemplo, toques en el \u00e1rea penal touchesInOppBox, pases en el tercio final finalThirdEntries y tiros desde diferentes zonas. Si tu plan incluye adem\u00e1s un flujo de eventos con coordenadas de acci\u00f3n, ya puedes construir mapas de calor completos por x e y, dividiendo el campo en una cuadr\u00edcula y contando el n\u00famero de eventos en cada celda.<\/p>\n<\/div>\n<div class=\"universal_article\">\n<h2 id=\"contents-4\">\u00bfC\u00f3mo crear un mapa de calor de tiros y acciones de jugadores utilizando datos de API?<\/h2>\n<p>Al crear un mapa de calor de tiros, es importante extraer correctamente las m\u00e9tricas relacionadas con acciones ofensivas de la API. En el objeto matchStatistics, hay grupos Shots y Attack, que contienen m\u00e9tricas totalShotsOnGoal, shotsOnGoal, totalShotsInsideBox, totalShotsOutsideBox, touchesInOppBox, bigChanceCreated y otros. Estos valores ya proporcionan una idea de las zonas y la frecuencia con la que el equipo o un jugador espec\u00edfico crea una amenaza.<\/p>\n<p>Para convertir estad\u00edsticas en un mapa de calor, el campo se divide generalmente en una cuadr\u00edcula, con cada celda correspondiente a un sector. Si tienes las coordenadas de los disparos y acciones, simplemente cuentas el n\u00famero de eventos por celda. Al trabajar solo con datos agregados de matchStatistics, puedes modelar la intensidad a trav\u00e9s de bandas verticales y horizontales, por ejemplo, evaluando por separado el flanco izquierdo, el flanco derecho y la zona central, as\u00ed como dividiendo el campo en tercios.<\/p>\n<p>A continuaci\u00f3n se muestra un ejemplo en Python que recupera datos del partido a trav\u00e9s de la API, extrae m\u00e9tricas clave sobre disparos y prepara la base para visualizar un mapa de calor como una matriz bidimensional. Para un proyecto real, puedes reemplazar la matriz condicional con el resultado del procesamiento de coordenadas.<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\" data-no-translation=\"\">\nimport requests\nAPI_KEY = '\u0412\u0410\u0428_API_\u041a\u041b\u042e\u0427'\nMATCH_ID = 14570728\nurl = f'https:\/\/api.api-sport.ru\/v2\/football\/matches\/{MATCH_ID}'\nresp = requests.get(url, headers={'Authorization': API_KEY})\nmatch = resp.json()\nall_period = next(s for s in match&#x5B;'matchStatistics'] if s&#x5B;'period'] == 'ALL')\nshots_group = next(g for g in all_period&#x5B;'groups'] if g&#x5B;'groupName'] == 'Shots')\nshots_total = next(i for i in shots_group&#x5B;'statisticsItems'] if i&#x5B;'key'] == 'totalShotsOnGoal')\ninside_box = next(i for i in shots_group&#x5B;'statisticsItems'] if i&#x5B;'key'] == 'totalShotsInsideBox')\noutside_box = next(i for i in shots_group&#x5B;'statisticsItems'] if i&#x5B;'key'] == 'totalShotsOutsideBox')\nprint('\u0423\u0434\u0430\u0440\u044b \u0432\u0441\u0435\u0433\u043e:', shots_total&#x5B;'homeValue'], shots_total&#x5B;'awayValue'])\nprint('\u0418\u0437 \u0448\u0442\u0440\u0430\u0444\u043d\u043e\u0439:', inside_box&#x5B;'homeValue'], inside_box&#x5B;'awayValue'])\nprint('\u0418\u0437-\u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u043e\u0432:', outside_box&#x5B;'homeValue'], outside_box&#x5B;'awayValue'])\n# \u0417\u0430\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043f\u043e\u0434 \u0442\u0435\u043f\u043b\u043e\u0432\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443 3\u04453 \u043f\u043e \u0437\u043e\u043d\u0430\u043c \u043f\u043e\u043b\u044f\nheatmap_matrix = &#x5B;\n    &#x5B;0, 0, 0],\n    &#x5B;0, 0, 0],\n    &#x5B;0, 0, 0]\n]\n<\/pre>\n<p>La matriz resultante se puede dibujar convenientemente utilizando bibliotecas de visualizaci\u00f3n, coloreando las celdas seg\u00fan la intensidad. Si adem\u00e1s conectas tus propios datos de seguimiento o coordenadas de disparo a la API de Sport Events, se pueden combinar en un solo pipeline para construir un mapa de calor detallado de las acciones de cada jugador hasta un punto espec\u00edfico en el campo.<\/p>\n<\/div>\n<div class=\"universal_article\">\n<h2 id=\"contents-5\">\u00bfC\u00f3mo construir un mapa de pases de los pases del equipo basado en la API de eventos?<\/h2>\n<p>El mapa de pases ayuda a ver la estructura del juego de bal\u00f3n a trav\u00e9s de las conexiones entre jugadores. Condicionalmente, cada jugador es un nodo del gr\u00e1fico, y los pases entre ellos son aristas, cuyo grosor y color dependen de la frecuencia y precisi\u00f3n de los pases. Para calcular tales conexiones, se necesitan dos capas de datos: la composici\u00f3n del equipo con identificadores de jugadores y eventos que reflejan los pases entre ellos. La primera capa proporciona el endpoint v2 football matches {matchId} a trav\u00e9s de los objetos homeTeam, awayTeam y lineup. La segunda capa se forma en base al feed de eventos y estad\u00edsticas de matchStatistics.<\/p>\n<p>El endpoint v2 football matches {matchId} events devuelve un array de eventos con LiveEvent durante el partido. Es especialmente \u00fatil en combinaci\u00f3n con m\u00e9tricas agregadas del grupo de Pases, que incluye accuratePasses, passes, finalThirdEntries, accurateLongBalls, accurateCross. Estos datos te permiten evaluar el volumen y la calidad general de los pases para el equipo, y luego distribuirlos a trav\u00e9s de las conexiones de los jugadores si tu plan incluye un flujo de eventos extendido que especifique el pasador y el receptor del pase.<\/p>\n<p>A continuaci\u00f3n se muestra un ejemplo en JavaScript que recupera la lista de eventos del partido y prepara la estructura para un gr\u00e1fico de pases simple. El array de pases asume eventos donde passerId y receiverId ya han sido destacados. Tal estructura se puede obtener ya sea de un plan tarifario avanzado o de tu propio preprocesamiento de datos en bruto.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\" data-no-translation=\"\">\nconst API_KEY = '\u0412\u0410\u0428_API_\u041a\u041b\u042e\u0427';\nconst matchId = 14570728;\nasync function loadEvents() {\n  const res = await fetch('https:\/\/api.api-sport.ru\/v2\/football\/matches\/' + matchId + '\/events', {\n    headers: { Authorization: API_KEY }\n  });\n  const data = await res.json();\n  return data.events;\n}\nfunction buildPassingGraph(passes) {\n  const links = {};\n  passes.forEach(p =&gt; {\n    const key = p.passerId + '-' + p.receiverId;\n    if (!links&#x5B;key]) {\n      links&#x5B;key] = { from: p.passerId, to: p.receiverId, count: 0 };\n    }\n    links&#x5B;key].count += 1;\n  });\n  return Object.values(links);\n}\n<\/pre>\n<p>El array resultante de conexiones se puede pasar a cualquier biblioteca de visualizaci\u00f3n de gr\u00e1ficos y dibujar como un mapa de pases sobre el esquema del campo. En el futuro, la plataforma <a href=\"http:\/\/api-sport.pro\/es\/\">api-sport.pro<\/a> planea desarrollar herramientas en tiempo real basadas en WebSocket y m\u00f3dulos de IA. Esto abrir\u00e1 la posibilidad de construir mapas de pases con actualizaciones en l\u00ednea y conocimientos autom\u00e1ticos, como identificar conexiones clave y patrones de juego no convencionales.<\/p>\n<\/div>\n<div class=\"universal_article\">\n<h2 id=\"contents-6\">Herramientas y bibliotecas para visualizar datos deportivos de APIs (Python, JavaScript)<\/h2>\n<p>Despu\u00e9s de haber configurado la recuperaci\u00f3n de datos a trav\u00e9s de la API de Sport Events, el siguiente paso es elegir un stack de visualizaci\u00f3n. En el ecosistema de Python, las combinaciones populares son pandas m\u00e1s matplotlib o seaborn para gr\u00e1ficos est\u00e1ticos y plotly para paneles interactivos. Para campos de f\u00fatbol, a menudo se utiliza la biblioteca especializada mplsoccer, que simplifica el dibujo de marcas, mapas de calor y mapas de pases en un campo de f\u00fatbol est\u00e1ndar.<\/p>\n<p>En el navegador, la herramienta principal para gr\u00e1ficos interactivos complejos sigue siendo D3.js. Para implementaciones m\u00e1s r\u00e1pidas, Chart.js, ECharts o Highcharts son adecuados, que manejan bien las matrices de calor y los gr\u00e1ficos de cuadr\u00edcula. Las aplicaciones cliente se pueden conectar c\u00f3modamente a la API a trav\u00e9s de fetch o axios, y en tiempo real, los datos se pueden actualizar a trav\u00e9s de WebSocket, que se planea agregar a la infraestructura de api-sport.ru. Esto permitir\u00e1 construir paneles en vivo con un mapa de calor en l\u00ednea y actualizar mapas de pases sin recargar la p\u00e1gina.<\/p>\n<p>A continuaci\u00f3n se muestra un ejemplo de c\u00f3digo m\u00ednimo en Python que recupera datos de partidos de una API y construye un mapa de calor simple basado en un conjunto condicional de coordenadas de disparo utilizando matplotlib. En la pr\u00e1ctica, en lugar de la lista de disparos, utilizar\u00e1s coordenadas reales obtenidas de tu propio seguimiento o de un feed de eventos mejorado.<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\" data-no-translation=\"\">\nimport requests\nimport numpy as np\nimport matplotlib.pyplot as plt\nAPI_KEY = '\u0412\u0410\u0428_API_\u041a\u041b\u042e\u0427'\nMATCH_ID = 14570728\n# \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0430\u0442\u0447 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441\u0447\u0435\u0442 \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435)\nurl = f'https:\/\/api.api-sport.ru\/v2\/football\/matches\/{MATCH_ID}'\nmatch = requests.get(url, headers={'Authorization': API_KEY}).json()\n# \u0423\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0443\u0434\u0430\u0440\u043e\u0432 \u0432 \u043d\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 0..1\nshots = np.array(&#x5B;\n    &#x5B;0.8, 0.4],\n    &#x5B;0.9, 0.5],\n    &#x5B;0.7, 0.3],\n    &#x5B;0.85, 0.6]\n])\nheatmap, xedges, yedges = np.histogram2d(shots&#x5B;:, 0], shots&#x5B;:, 1], bins=20, range=&#x5B;&#x5B;0, 1], &#x5B;0, 1]])\nplt.imshow(heatmap.T, origin='lower', cmap='hot', interpolation='nearest')\nplt.title('Heatmap \u0443\u0434\u0430\u0440\u043e\u0432')\nplt.xlabel('\u0414\u043b\u0438\u043d\u0430 \u043f\u043e\u043b\u044f')\nplt.ylabel('\u0428\u0438\u0440\u0438\u043d\u0430 \u043f\u043e\u043b\u044f')\nplt.colorbar(label='\u0418\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0441\u0442\u044c')\nplt.show()\n<\/pre>\n<p>Al combinar tales enfoques con datos de cuotas del bloque oddsBase y futuros m\u00f3dulos de IA en el lado del servicio, se pueden construir paneles anal\u00edticos avanzados. Integrar\u00e1n la imagen t\u00e1ctica en el campo, la din\u00e1mica del mercado de apuestas y sugerencias autom\u00e1ticas de modelos, haciendo que la combinaci\u00f3n de la API de eventos deportivos y la pila de visualizaci\u00f3n moderna sea una herramienta poderosa para analistas, medios y proyectos de apuestas.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Contenido \u00bfQu\u00e9 es un mapa de calor y un mapa de pases en el an\u00e1lisis deportivo? \u00bfQu\u00e9 APIs de datos deportivos usar para la visualizaci\u00f3n del f\u00fatbol? \u00bfC\u00f3mo obtener datos de partidos a trav\u00e9s de API para construir mapas de calor de jugadores? \u00bfC\u00f3mo crear un mapa de calor de tiros y acciones de jugadores basado en datos de API? \u00bfC\u00f3mo construir un mapa de pases de los pases del equipo basado en la API de eventos? Herramientas y bibliotecas para la visualizaci\u00f3n deportiva [\u2026]<\/p>","protected":false},"author":1,"featured_media":1235,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","faq":"[{\"question\":\"\u041a\u0430\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0443\u0436\u043d\u044b, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e heatmap \u043f\u043e \u0444\u0443\u0442\u0431\u043e\u043b\u0443?\",\"answer\":\"\u0414\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0442\u0435\u043f\u043b\u043e\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0441 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u043e\u0439 \u043a \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c \u043d\u0430 \u043f\u043e\u043b\u0435: \u0443\u0434\u0430\u0440\u044b, \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438, \u043e\u0442\u0431\u043e\u0440\u044b, \u043a\u0430\u0441\u0430\u043d\u0438\u044f \u043c\u044f\u0447\u0430. \u0412 Sport Events API \u043e\u0441\u043d\u043e\u0432\u043e\u0439 \u0441\u043b\u0443\u0436\u0430\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u044b Match \u0438 matchStatistics \u0441 \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438 Shots, Attack, Passes, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u043f\u043e \u043c\u0430\u0442\u0447\u0443. \u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0438\u0437 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0445 \u0444\u0438\u0434\u043e\u0432 \u0438\u043b\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0442\u0440\u0435\u043a\u0438\u043d\u0433\u0430 \u0438 \u0441\u043e\u0432\u043c\u0435\u0449\u0430\u0442\u044c \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 API.\"},{\"question\":\"\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0441\u0442\u0440\u043e\u0438\u0442\u044c heatmap \u0438 passing map \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438?\",\"answer\":\"\u0414\u0430, \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 live \u043f\u043e\u0442\u043e\u043a\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439. \u0423\u0436\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 Sport Events API \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 liveEvents \u043f\u043e \u043c\u0430\u0442\u0447\u0443, \u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 WebSocket \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u0430 \u0432 \u0434\u043e\u0440\u043e\u0436\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0435 api-sport.ru. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043c\u0430\u0442\u0447 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0442\u0435\u043f\u043b\u043e\u0432\u044b\u0435 \u043a\u0430\u0440\u0442\u044b, \u043a\u0430\u0440\u0442\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0447 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u043d\u043b\u0430\u0439\u043d \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.\"},{\"question\":\"\u041a\u0430\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438 \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 API?\",\"answer\":\"\u041d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u0434\u043b\u044f \u043e\u0444\u043b\u0430\u0439\u043d \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u0447\u0430\u0449\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 Python \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 pandas, matplotlib, seaborn, plotly \u0438 mplsoccer. \u0414\u043b\u044f \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0438 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u043e\u0432 \u0443\u0434\u043e\u0431\u0435\u043d JavaScript: D3.js, Chart.js \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. Sport Events API \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0433\u043e \u043b\u0435\u0433\u043a\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0441 Python, \u0438 \u0441 JavaScript.\"},{\"question\":\"\u041a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a API \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 api-sport.ru?\",\"answer\":\"\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 api-sport.ru \u0438 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u044e\u0447 \u0432 \u043b\u0438\u0447\u043d\u043e\u043c \u043a\u0430\u0431\u0438\u043d\u0435\u0442\u0435 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 app.api-sport.ru. \u0414\u0430\u043b\u0435\u0435 \u043a\u043b\u044e\u0447 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 Authorization \u043f\u0440\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445 \u043a \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u0430\u043c \u0432\u0438\u0434\u0430 v2 sportSlug matches, teams, players \u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c.\"},{\"question\":\"\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 API \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432 \u0431\u0443\u043a\u043c\u0435\u043a\u0435\u0440\u043e\u0432?\",\"answer\":\"\u0414\u0430, \u0432 \u043e\u0442\u0432\u0435\u0442\u0430\u0445 \u043c\u0430\u0442\u0447\u0435\u0439 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043b\u043e\u043a oddsBase \u0441 \u0440\u044b\u043d\u043a\u0430\u043c\u0438 \u0441\u0442\u0430\u0432\u043e\u043a \u0438 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430\u043c\u0438. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432, \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u043b\u0438\u043d\u0438\u0439 \u0438 \u043d\u0430\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u0445 \u043d\u0430 \u0442\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a heatmap \u0438\u043b\u0438 passing map, \u0447\u0442\u043e\u0431\u044b \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0443 \u0440\u044b\u043d\u043a\u0430 \u0441 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u043d\u0430 \u043f\u043e\u043b\u0435.\"}]","footnotes":""},"categories":[1],"tags":[],"class_list":["post-1236","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"yoast_head":"<title>Visualization of sports data - heatmap and passing map through API<\/title>\n<meta name=\"description\" content=\"Guide to creating heat maps and transfer maps based on the sports API. For analysts, media, and betting. Examples of queries, Python and JavaScript.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/api-sport.pro\/es\/como-crear-una-visualizacion-de-datos-deportivos-mapa-de-calor-mapa-de-pases\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Visualization of sports data - heatmap and passing map through API\" \/>\n<meta property=\"og:description\" content=\"Guide to creating heat maps and transfer maps based on the sports API. For analysts, media, and betting. Examples of queries, Python and JavaScript.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/api-sport.pro\/es\/como-crear-una-visualizacion-de-datos-deportivos-mapa-de-calor-mapa-de-pases\/\" \/>\n<meta property=\"og:site_name\" content=\"Sports Events API\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-17T17:08:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/api-sport.pro\/wp-content\/uploads\/2025\/11\/kak-delat-vizualizatsiyu-sportivnykh-dannykh-heatmap-passing-map_posts.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1408\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/api-sport.pro\/how-to-create-a-visualization-of-sports-data-heatmap-passing-map\/\",\"url\":\"https:\/\/api-sport.pro\/how-to-create-a-visualization-of-sports-data-heatmap-passing-map\/\",\"name\":\"Visualization of sports data - heatmap and passing map through API\",\"isPartOf\":{\"@id\":\"https:\/\/api-sport.pro\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/api-sport.pro\/how-to-create-a-visualization-of-sports-data-heatmap-passing-map\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/api-sport.pro\/how-to-create-a-visualization-of-sports-data-heatmap-passing-map\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/api-sport.pro\/wp-content\/uploads\/2025\/11\/kak-delat-vizualizatsiyu-sportivnykh-dannykh-heatmap-passing-map_posts.jpg\",\"datePublished\":\"2025-12-17T17:08:12+00:00\",\"author\":{\"@id\":\"https:\/\/api-sport.pro\/#\/schema\/person\/bc93f449b3753a5f254264da266fb601\"},\"description\":\"Guide to creating heat maps and transfer maps based on the sports API. For analysts, media, and betting. Examples of queries, Python and JavaScript.\",\"breadcrumb\":{\"@id\":\"https:\/\/api-sport.pro\/how-to-create-a-visualization-of-sports-data-heatmap-passing-map\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/api-sport.pro\/how-to-create-a-visualization-of-sports-data-heatmap-passing-map\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/api-sport.pro\/how-to-create-a-visualization-of-sports-data-heatmap-passing-map\/#primaryimage\",\"url\":\"https:\/\/api-sport.pro\/wp-content\/uploads\/2025\/11\/kak-delat-vizualizatsiyu-sportivnykh-dannykh-heatmap-passing-map_posts.jpg\",\"contentUrl\":\"https:\/\/api-sport.pro\/wp-content\/uploads\/2025\/11\/kak-delat-vizualizatsiyu-sportivnykh-dannykh-heatmap-passing-map_posts.jpg\",\"width\":1408,\"height\":768,\"caption\":\"\u041a\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (heatmap, passing map)?\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/api-sport.pro\/how-to-create-a-visualization-of-sports-data-heatmap-passing-map\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\",\"item\":\"https:\/\/api-sport.pro\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to create a visualization of sports data (heatmap, passing map)?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/api-sport.pro\/#website\",\"url\":\"https:\/\/api-sport.pro\/\",\"name\":\"Sports Events API\",\"description\":\"Sports Events API\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/api-sport.pro\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/api-sport.pro\/#\/schema\/person\/bc93f449b3753a5f254264da266fb601\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/api-sport.pro\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8f3dce32feb8659c1f1c917db74325481c6133714f03d5a9433ba6df23a857ab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8f3dce32feb8659c1f1c917db74325481c6133714f03d5a9433ba6df23a857ab?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/api-sport.pro\"],\"url\":\"https:\/\/api-sport.pro\/es\/author\/admin\/\"}]}<\/script>","yoast_head_json":{"title":"Visualizaci\u00f3n de datos deportivos - mapa de calor y mapa de pases a trav\u00e9s de API","description":"Gu\u00eda para crear mapas de calor y mapas de transferencia basados en la API de deportes. Para analistas, medios y apuestas. Ejemplos de consultas, Python y JavaScript.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/api-sport.pro\/es\/como-crear-una-visualizacion-de-datos-deportivos-mapa-de-calor-mapa-de-pases\/","og_locale":"es_ES","og_type":"article","og_title":"Visualization of sports data - heatmap and passing map through API","og_description":"Guide to creating heat maps and transfer maps based on the sports API. For analysts, media, and betting. Examples of queries, Python and JavaScript.","og_url":"https:\/\/api-sport.pro\/es\/como-crear-una-visualizacion-de-datos-deportivos-mapa-de-calor-mapa-de-pases\/","og_site_name":"Sports Events API","article_published_time":"2025-12-17T17:08:12+00:00","og_image":[{"width":1408,"height":768,"url":"https:\/\/api-sport.pro\/wp-content\/uploads\/2025\/11\/kak-delat-vizualizatsiyu-sportivnykh-dannykh-heatmap-passing-map_posts.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"admin","Tiempo de lectura":"10 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/api-sport.pro\/how-to-create-a-visualization-of-sports-data-heatmap-passing-map\/","url":"https:\/\/api-sport.pro\/how-to-create-a-visualization-of-sports-data-heatmap-passing-map\/","name":"Visualizaci\u00f3n de datos deportivos - mapa de calor y mapa de pases a trav\u00e9s de API","isPartOf":{"@id":"https:\/\/api-sport.pro\/#website"},"primaryImageOfPage":{"@id":"https:\/\/api-sport.pro\/how-to-create-a-visualization-of-sports-data-heatmap-passing-map\/#primaryimage"},"image":{"@id":"https:\/\/api-sport.pro\/how-to-create-a-visualization-of-sports-data-heatmap-passing-map\/#primaryimage"},"thumbnailUrl":"https:\/\/api-sport.pro\/wp-content\/uploads\/2025\/11\/kak-delat-vizualizatsiyu-sportivnykh-dannykh-heatmap-passing-map_posts.jpg","datePublished":"2025-12-17T17:08:12+00:00","author":{"@id":"https:\/\/api-sport.pro\/#\/schema\/person\/bc93f449b3753a5f254264da266fb601"},"description":"Gu\u00eda para crear mapas de calor y mapas de transferencia basados en la API de deportes. Para analistas, medios y apuestas. Ejemplos de consultas, Python y JavaScript.","breadcrumb":{"@id":"https:\/\/api-sport.pro\/how-to-create-a-visualization-of-sports-data-heatmap-passing-map\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/api-sport.pro\/how-to-create-a-visualization-of-sports-data-heatmap-passing-map\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/api-sport.pro\/how-to-create-a-visualization-of-sports-data-heatmap-passing-map\/#primaryimage","url":"https:\/\/api-sport.pro\/wp-content\/uploads\/2025\/11\/kak-delat-vizualizatsiyu-sportivnykh-dannykh-heatmap-passing-map_posts.jpg","contentUrl":"https:\/\/api-sport.pro\/wp-content\/uploads\/2025\/11\/kak-delat-vizualizatsiyu-sportivnykh-dannykh-heatmap-passing-map_posts.jpg","width":1408,"height":768,"caption":"\u041a\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (heatmap, passing map)?"},{"@type":"BreadcrumbList","@id":"https:\/\/api-sport.pro\/how-to-create-a-visualization-of-sports-data-heatmap-passing-map\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/api-sport.pro\/"},{"@type":"ListItem","position":2,"name":"How to create a visualization of sports data (heatmap, passing map)?"}]},{"@type":"WebSite","@id":"https:\/\/api-sport.pro\/#website","url":"https:\/\/api-sport.pro\/","name":"API de Eventos Deportivos","description":"API de Eventos Deportivos","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/api-sport.pro\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/api-sport.pro\/#\/schema\/person\/bc93f449b3753a5f254264da266fb601","name":"administrador","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/api-sport.pro\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8f3dce32feb8659c1f1c917db74325481c6133714f03d5a9433ba6df23a857ab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8f3dce32feb8659c1f1c917db74325481c6133714f03d5a9433ba6df23a857ab?s=96&d=mm&r=g","caption":"admin"},"sameAs":["http:\/\/api-sport.pro"],"url":"https:\/\/api-sport.pro\/es\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/posts\/1236","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/comments?post=1236"}],"version-history":[{"count":2,"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/posts\/1236\/revisions"}],"predecessor-version":[{"id":1455,"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/posts\/1236\/revisions\/1455"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/media\/1235"}],"wp:attachment":[{"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/media?parent=1236"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/categories?post=1236"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/tags?post=1236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}