Введение:

Финал Лиги чемпионов УЕФА — долгожданный футбольный матч, в котором примут участие лучшие команды со всей Европы. В финале июня 2023 года «Манчестер Сити» и «Интер» сразятся за престижный трофей. Эта статья направлена ​​на анализ производительности обеих команд на основе ключевых статистических показателей с использованием радиолокационного графика, созданного с помощью Plotly. Изучая различные аспекты, такие как ожидаемое количество голов, разница мячей и очки за столом, мы можем получить представление о том, какая команда может одержать верх в финальном противостоянии.

Анализ радиолокационного графика:

Радарный график обеспечивает визуальное представление показателей производительности как для «Манчестер Сити», так и для «Интер Милан». Давайте рассмотрим различные атрибуты и их значение для каждой команды.

1. Ожидаемое количество голов (xGoals):
Ожидаемое количество голов измеряет качество голевых моментов, которые команда создает во время матча. У «Манчестер Сити» более высокое значение xGoals — 77,7, по сравнению с миланским «Интером» — 68,0. Это говорит о том, что «Манчестер Сити» более эффективно создавал голевые моменты.

2. Ожидаемое количество голов против (xGoals Against):
Показатель xGoals Against отражает качество голевых моментов, которые противоборствующие команды создают против защиты команды. «Манчестер Сити» имеет более низкое значение xGoals Against, равное 31,3, что указывает на сильную оборонительную эффективность. У миланского «Интера» показатель xGoals Against немного выше — 36,5.

3. Ожидаемая разница голов (разница xGoals):
Разница xGoals представляет собой баланс между атакующими и оборонительными характеристиками команды. «Манчестер Сити» имеет более высокое значение xGoals Difference, равное 46,4, что подчеркивает их доминирующее атакующее мастерство по сравнению с миланским «Интером» (31,6).

4. Голы за:
Голы за означает количество голов, забитых командой в течение сезона. «Манчестер Сити» забил 94 гола, демонстрируя свою способность постоянно находить заднюю часть ворот. Миланский «Интер» забил 71 гол, что указывает на немного более низкую результативность.

5. Голы против:
Голы против указывает количество голов, пропущенных защитой команды. У «Манчестер Сити» меньшее значение «Гол против» — 33, что отражает их сильную игру в обороне. Миланский «Интер» пропустил 42 гола, что свидетельствует об относительно слабой защите.

6. Разница голов.
Разница голов представляет собой числовую разницу между забитыми и пропущенными голами. «Манчестер Сити» может похвастаться более высоким значением разницы мячей, равным 61, что указывает на их общую лучшую игру по сравнению с миланским «Интером» (29).

7. Очки таблицы:
Очки таблицы отражают накопление очков в течение сезона, указывая на позицию команды в лиге. «Манчестер Сити» набрал 89 очков, что свидетельствует об их стабильном успехе. Миланский «Интер» набрал 72 очка, что является приличным результатом, но немного отстает от «Манчестер Сити».

Код Python для радиолокационного графика:

import plotly.express as px
import plotly.graph_objects as go
import pandas as pd

# Define the data
data = {
    'Squad': ['Manchester City', 'Inter Millan'],
    'xGoals': [77.7, 68.0],
    'xGoals Against': [31.3, 36.5],
    'xGoals Difference': [46.4, 31.6],
    'Goals For': [94, 71],
    'Goals Against': [33, 42],
    'Goal Difference': [61, 29],
    'Table Points': [89, 72]
}

# Create a list of attributes to include in the radar plot
attributes = ['xGoals', 'xGoals Against', 'xGoals Difference', 'Goals For', 'Goals Against', 'Goal Difference', 'Table Points']

# Create a list of values for each squad
values = []
for squad_data in zip(*[data[attr] for attr in attributes]):
    values.append(list(squad_data))

# Create a trace for each squad
traces = []
for squad, squad_values in zip(data['Squad'], values):
    trace = go.Scatterpolar(
        r=squad_values,
        theta=attributes,
        fill='toself',
        name=squad
    )
    traces.append(trace)

# Create the layout for the radar plot
layout = go.Layout(
    height=1000,
    title="UCL FINAL JUNE 2023. MAN CITY VS INTER MILLAN. SEASON COMPARISON",
    polar=dict(
        radialaxis=dict(
            visible=True,
            range=[0, max(max(data[attr]) for attr in attributes)]
        )
    ),
    showlegend=True
)

# Create the figure and plot the radar plot
fig = go.Figure(data=traces, layout=layout)
fig.show()

Техническое объяснение кода Python:

Этот код используется для создания радиолокационного графика с помощью Plotly, сравнивающего результаты двух футбольных команд, «Манчестер Сити» и «Интер Милан», в контексте финала Лиги чемпионов УЕФА (ЛЧ) в июне 2023 года. Давайте разберем код и объясним его. шаг за шагом:

1. Импорт необходимых библиотек:
— `plotly.express` импортируется как `px`, что обеспечивает упрощенный интерфейс для создания интерактивных графиков.
— `plotly.graph_objects` импортируется как `go` , что позволяет создавать более настраиваемые и подробные графики.
— `pandas` импортируется как `pd`, что обеспечивает возможности обработки и анализа данных.

2. Определение данных:
— Переменная `data` — это словарь, который содержит показатели производительности для двух команд.
— Каждый ключ в словаре представляет определенный показатель, например, «Отряд». «xGoals», «xGoals Against» и т. д.
— соответствующие значения для каждой метрики представлены в виде списков.

3. Создание списка атрибутов:
— Переменная `attributes` — это список, который включает в себя атрибуты (показатели производительности), которые должны отображаться на лепестковой диаграмме.
— Эти атрибуты выбираются из ключей в словарь `данные`.

4. Создание списка значений для каждого отряда:
— Список «значений» создается для хранения значений каждого атрибута для каждого отряда.
— Используя цикл и функцию «zip», значения извлекаются из словаря `data` на основе атрибутов.
— Список `values` заполняется списками, содержащими значения для каждого отряда, выровненные с соответствующими атрибутами.

5. Создание трассировки для каждого отряда:
— Список «трассировок» создается для хранения трассировок (точек данных) для каждого отряда на радиолокационном графике.
— Другой цикл используется для перебора отряды и их соответствующие значения.
— Для каждого отряда создается трассировка с использованием `go.Scatterpolar`, с указанием значений (`r`), атрибутов (`theta`) и имени отряда (`name`) .
— Параметр fill имеет значение 'toself', что заполняет область, ограниченную точками данных.
— Каждая трасса добавляется в список трассировок.

6. Создание макета для радарного графика:
— Переменная `layout` определена для указания параметров визуального макета для радарного графика.
— Параметр `height` задает высоту графика равной 1000 пикселей.
— Параметр `title` устанавливает заголовок графика.
— Параметр polar используется для настройки полярных координат для радиолокационного графика.
— Параметр `radialaxis ` Параметр настроен на видимость и устанавливает диапазон на основе максимального значения среди всех атрибутов.
— Параметр `showlegend` имеет значение True, что отображает легенду на графике.

7. Создание фигуры и построение радиолокационного графика:
— Функция `go.Figure` используется для создания объекта фигуры, который будет содержать трассы и макет.
— Параметр `data` устанавливается в список `traces`, содержащий точки данных.
— Параметр `layout` устанавливается в переменную `layout`, определяющую визуальные настройки.
— Наконец, `fig.show( )` метод вызывается для отображения графика радара.

Радарный график обеспечивает визуальное сравнение показателей производительности «Манчестер Сити» и «Интер Милан» в финале ЛЧ, демонстрируя их сильные и слабые стороны в различных аспектах игры.

Заключение:

Судя по анализу радиолокационного графика и статистических показателей, «Манчестер Сити», по-видимому, имеет преимущество перед миланским «Интером» в нескольких ключевых областях. Они продемонстрировали превосходную атакующую эффективность, хорошую защиту и более высокую разницу мячей. Кроме того, накопление ими большего количества очков за столом в течение сезона демонстрирует их общую стабильность и производительность.

Однако важно отметить, что футбольные матчи могут быть непредсказуемыми, а конечный результат зависит от различных факторов, таких как форма команды, индивидуальные выступления и тактические решения. Хотя радарный график дает ценную информацию, исход финала ЛЧ между «Манчестер Сити» и «Интером» в конечном итоге будет определен на поле.

Как любители футбола, мы с нетерпением ожидаем столкновения между этими двумя талантливыми командами и волнения, которое принесет финал ЛЧ.