Original size 1200x1896

Анализ Формулы 1

PROTECT STATUS: not protected
The project is taking part in the competition
big
Original size 1920x1000
Brian_Tyler_Concert_-_Formula_1_Theme_(SkySound.cc)
4 min

ОПИСАНИЕ

big
Original size 1920x1080

Загрузка библиотек

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from matplotlib import rcParams import matplotlib.font_manager as fm

Loading...

Обоснование шрифта

Для проекта был выбран шрифт Jost — современный геометрический sans-serif, вдохновлённый немецкой типографикой 1920-х и эстетикой Futura, но адаптированный под цифровую среду. Он даёт ровный «технический» характер, хорошо читается в подписях, шкалах и плотных таблицах, поэтому подходит для инфографики про телеметрию и динамику гонок. Важно, что Jost распространяется по свободной лицензии SIL Open Font License, поэтому его можно легально приложить к проекту вместе с .ttf и сохранить полную воспроизводимость оформления.

Original size 540x220

Код для подключения кастомного шрифта

import matplotlib.pyplot as plt import matplotlib.font_manager as fm from matplotlib import rcParams import os

if os.path.exists ('Jost-Regular.ttf'): font_path = 'Jost-Regular.ttf' try: fm.fontManager.addfont (font_path) prop = fm.FontProperties (fname=font_path) rcParams['font.family'] = prop.get_name () rcParams['font.sans-serif'] = [prop.get_name ()] rcParams['axes.unicode_minus'] = False except: pass

Код для палитры и общих характеристик оформления

Для проекта была выбрана палитра, основанная на фирменных цветах FIA. Тёмно-синий выступает основным техническим цветом, серебро используется для второстепенных элементов и сетки. Ярко-синий и золото добавлены как акценты, чтобы быстро выделять ключевые линии, лидеров и важные точки на графиках. Такая комбинация даёт стабильный контраст и хорошую читаемость, поэтому визуализации выглядят цельно и аккуратно во всём проекте.

import matplotlib.pyplot as plt import seaborn as sns from matplotlib import rcParams

FIA_DARK_BLUE = '#002D5F' FIA_BRIGHT_BLUE = '#00B4E1' FIA_GOLD = '#B49664' FIA_SILVER = '#BEBEBE' FIA_WHITE = '#FFFFFF'

extended_palette = [FIA_BRIGHT_BLUE, FIA_GOLD, FIA_SILVER, FIA_DARK_BLUE] sns.set_palette (extended_palette)

rcParams.update ({ 'axes.facecolor': FIA_WHITE, 'figure.facecolor': FIA_WHITE, 'axes.edgecolor': FIA_DARK_BLUE, 'xtick.color': FIA_DARK_BLUE, 'ytick.color': FIA_DARK_BLUE, 'axes.labelcolor': FIA_DARK_BLUE, 'text.color': FIA_DARK_BLUE, 'axes.titlecolor': FIA_DARK_BLUE, 'legend.labelcolor': FIA_DARK_BLUE, 'grid.color': FIA_SILVER, 'grid.alpha': 0.35, 'axes.grid': True, 'font.size': 12, 'axes.titlesize': 16, 'axes.labelsize': 13, 'xtick.labelsize': 12, 'ytick.labelsize': 12, 'legend.fontsize': 12, 'figure.titlesize': 18 })

Original size 1153x553
Original size 1095x1470

С помощью кода я построила линейный график, который показывает, как менялся уровень «драматичности» гонок по этапам сезона Формулы-1. Для этого я использую рассчитанный показатель Race Drama Score, который учитывает камбеки пилотов (разницу между стартовой и финишной позицией), динамику позиций по кругам и события гонки вроде Safety Car и Red Flag. Такой график помогает быстро увидеть, где в сезоне были самые «жаркие» этапы и как они выделяются на фоне остальных.

Original size 655x367
Original size 1155x753
Original size 1117x1459

С помощью кода я построила горизонтальную столбчатую диаграмму, которая показывает топ-15 самых драматичных гонок Формулы-1 за весь период по показателю Race Drama Score. Я рассчитала этот индекс для каждой гонки и отсортировала результаты, чтобы выделить этапы, которые можно назвать «лучшими эпизодами» F1 по уровню борьбы и событий.

Original size 1920x1080
Original size 853x580
Original size 1215x1452
Original size 1255x1153

С помощью кода я построила диаграмму размаха, которая сравнивает распределение Race Drama Score в гонках со Safety Car и без него. Такой график помогает проверить, действительно ли нейтрализации и инциденты повышают общий уровень драматичности гонки, а не влияют только на отдельные яркие моменты.

Original size 498x280
Original size 1072x653
Original size 1170x1458
Original size 1059x703

С помощью кода я построила диаграмму рассеяния, где каждая точка — отдельная гонка Формулы-1. По оси X показана «перетасовка» позиций по ходу дистанции, а по оси Y — средний камбек относительно стартовой решётки. Дополнительно события гонки учитываются визуально, чтобы было видно, какие заезды стали драматичными из-за хаоса и обгонов, а какие — благодаря сильным прорывам отдельных пилотов.

Original size 1920x1080

Заключение

Анализ данных Формулы-1 показал, что «драматичность» гонок можно уверенно описывать не одним фактором, а сочетанием нескольких компонентов. В динамике по сезонам видно, что общий уровень драматичности меняется волнообразно: чемпионат переживает периоды более стабильных гонок и периоды повышенной «непредсказуемости». Рейтинг топ-гонок по Race Drama Score позволил выделить этапы-“хайлайты», которые становятся самыми запоминающимися за счёт плотной борьбы и заметных изменений по ходу гонки. Сравнение гонок со Safety Car и без него показало, что наличие нейтрализаций не гарантирует более высокий уровень драматичности — эффект проявляется по-разному, и часто решающим фактором остаётся сама гонка и характер борьбы. Наконец, диаграмма рассеяния наглядно разделила гонки по «механике зрелищности»: одни становятся драматичными благодаря массовой перетасовке позиций по кругам, другие — из-за сильных камбеков относительно стартовой решётки.

Original size 1200x675

Применение генеративной модели

ChatGPT использовался для подбора шрифта-замены коммерческому варианту, выбора оптимальных таблиц и полей из датасета под задачи анализа, а также для улучшения кода: исправления ошибок загрузки и объединения данных, логики расчётов и приведения визуализаций к единому стилю (палитра, типографика, параметры оформления).

Ссылка на датасет

We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more