Исходный размер 1066x1515

Анализ исторических данных по турнирам Dota 2

Ember Spirit
1 мин

Для своей работы я выбрала исторические данные по турнирам Dota 2. Датасет взят с сайта opendatabay.com

DotA — одна из самых популярных игр в мире киберспорта с пиковыми онлайном более 1,2 млн игроков одновременно и миллионами ежемесячных пользователей на Steam. Эти данные особенно интересны, поскольку охватывают более 140 крупных турниров с 2011 года. Анализ позволяет выявить тренды роста индустрии, доминирование команд вроде OG или Team Spirit и влияние внешних факторов вроде отмен турниров в 2020 году.

Я буду использовать следующие виды графиков: — Линейный график — Облако слов — Тепловая диаграмма — Круговая диаграмма

Эти типы обеспечивают разнообразие визуализаций и соответствуют структуре данных

Цветовое решение

Цвета для проекта были вдохновлены цветовой палитрой персонажей Dota 2

Я выбрала следующие цвета:

— Белый — Розовый — Бирюзовый — Фиолетовый

big
Исходный размер 3944x863
big
Исходный размер 4220x2184

Герои в Дота 2

Lina
1 мин

График № 1

Линейный график

Подготовливаем окружение для анализа данных и визуализации:

Исходный размер 890x188

Этот код импортирует необходимые библиотеки. Pandas используется для обработки таблиц данных. Matplotlib.pyplot служит для построения графиков. Numpy применяется для числовых вычислений. Matplotlib.font_manager управляет шрифтами. Os работает с файловой системой. %matplotlib inline отображает графики прямо в Jupyter Notebook.

Настраиваем шрифт для графика

Исходный размер 887x206

Проверяется существование файла 'trajanpro_bold.ttf'. Если файл найден, подключается Trajan Pro Bold через FontProperties. Имя шрифта применяется глобально к графикам. Выводится сообщение об успешном подключении. Иначе используется стандартный serif.

Исходный размер 886x617

Этот блок загружает и очищает данные о призовых фондах Dota. Читается CSV-файл 'dota_dataset.csv'. Удаляются символы '$', ', ' и пробелы из столбца Total_Prize для преобразования в float. Создается функция get_year для извлечения года из даты. Годы 2011-2021 фильтруются и очищаются от пропусков. Данные агрегируются по годам с суммированием призовых. Значения округляются до миллионов долларов. Выводится итоговая таблица.

Создаем линейный график призовых фондов Dota 2

Исходный размер 880x412

Создается фигура размером 12×7 с прозрачным фоном. Строится линия с толщиной 4 и белыми маркерами по данным yearly_data. Устанавливается заголовок «Призовые фонды Dota 2 (2011-2021)» белым цветом. Подписи осей «Год» и «Призовой фонд (млн $)» окрашены в белый. Добавляется белая сетка с прозрачностью. Настраиваются белые метки тиков. Устанавливаются тики по годам.

Стилизуем и сохраняем график

Исходный размер 903x474

Белым цветом и толщиной 1.5 рамки осей. Применяется tight_layout для компоновки. График сохраняется как PNG с прозрачным фоном и высоким разрешением. Выводится сообщение о сохранении. Показывается график. Данные yearly_data сохраняются в CSV. Выводится сообщение о сохранении данных.

Итоговый график:

Исходный размер 2972x1770

История изменения общего призового фонда турнира The International по игре Dota 2 с 2011 по 2021 год

Наблюдался значительный рост призового фонда на протяжении большей части этого периода. Призовой фонд вырос с базовых $1,6 млн в 2011 году до более чем $34 млн в 2019 году. Рекордный пик призового фонда составил около $40 млн в 2021 году. В 2020 году турнир отменился, что привело к резкому спаду показателя на графике.

Большая часть призового фонда формируется за счет краудфандинга сообществом игроков, а не только компанией Valve.

Mirana
1 мин

График 2

Облако слов

Загружаем данные и анализируем локации турниров DotА

Исходный размер 791x684

Читается CSV-файл 'dota_dataset.csv'. Из столбца Location удаляются пропуски и преобразуются строки. Подсчитывается количество турниров по каждой локации через value_counts. Выводится топ-10 самых популярных локаций. Создается словарь custom_colors с кастомными цветами для ключевых локаций.

Определяем функцию color_func для раскраски слов по частоте

Исходный размер 820x601

Функция возвращает цвет из custom_colors или определяет его по квартилям location_counts. Создается WordCloud размером 1200×750 с прозрачным фоном RGBA. Устанавливаются параметры: 50 слов максимум, предпочтение горизонтальной ориентации, диапазон размеров шрифта. Облако генерируется из частот локаций. Применяется recolor с кастомной функцией цвета.

Отображаем и сохраняем облако слов локаций

Исходный размер 789x368

Создается фигура размером 14×10 с прозрачным фоном. Добавляется subplot и отображается wordcloud с интерполяцией bilinear. Ось отключается через axis ('off'). График сохраняется как PNG с высоким DPI, прозрачным фоном и минимальными отступами. Выводится сообщение о сохранении. Показывается облако слов.

Итоговый график:

Исходный размер 3267x2046

Облако слов, состоящее из названий городов и стран, где чаще всего проводились турниры

На графике мы видим:

Крупнейшие города и страны: Шанхай, Китай; Киев, Украина; Лос-Анджелес, США; Москва, Россия; Йёнчёпинг, Швеция. Регионы: Европа, СНГ. Самые частые страны: Китай и США. Наиболее заметные европейские города: Бухарест, Румыния; Берлин, Германия; Париж, Франция; Франкфурт, Германия.

Windranger
1 мин

График 3

Тепловая диаграмма

Импортируем библиотеки для анализа данных и визуализации

Исходный размер 793x478

Pandas обрабатывает таблицы. Matplotlib и Seaborn строят графики. Font_manager управляет шрифтами. Регулярные выражения и os используются для обработки текста и файлов. Warnings подавляются. Настраивается шрифт Trajan Pro Bold из файла .otf

Загружаем датасет Dota из CSV

Исходный размер 825x627

Создается функция extract_year для извлечения года из даты через регулярное выражение. Добавляется столбец Year ко всем строкам. Фильтруются данные только с победителями First_Place за 2011–2021 годы. Определяются уникальные годы и топ-15 команд по количеству побед. Создается нулевая матрица heatmap_data с командами в строках и годами в столбцах. Матрица заполняется количеством побед каждой команды по годам.

Выводим статистику топ-10 команд по победам и список лет

Исходный размер 787x685

Создается кастомная цветовая палитра из четырех цветов для heatmap. Строится фигура размером 16×10 с прозрачным фоном. Создается heatmap с числами побед, белыми границами ячеек и цветовой шкалой. Настраивается заголовок «DotA 2 Team Wins by Year (2011-2021)» белым цветом. Подписи осей «Year» и «Teams» выделяются жирным белым шрифтом.

Стилизуем тики осей и цветовую шкалу heatmap

Исходный размер 794x526

Белые тики для осей X и Y с размером 16 и без поворота. Цветовая шкала получает белые метки и жирную подпись. Настраиваются отступы фигуры для оптимальной компоновки. График сохраняется как PNG с высоким DPI и прозрачным фоном. Выводится сообщение о сохранении. Показывается финальный heatmap.

Итоговый график:

Исходный размер 4042x2800

Тепловая карта, показывающая количество побед команд в турнирах по Dota 2 с 2011 по 2021 год, с цветовой шкалой, указывающей количество побед

Мы видим количество побед команд в турнирах по Dota 2 с 2011 по 2021 год. Na’Vi доминировала в ранние годы, особенно в 2011 и 2013 годах. В середине десятилетия наблюдалось более равномерное распределение побед между командами EG, Secret, VP и Liquid. Команда OG достигла значительных успехов в 2018 и 2019 годах, одержав по несколько побед подряд.

Queen of Pain
1 мин

График 4

Круговая диаграмма

Импортируем библиотеки для данных и визуализации

Исходный размер 801x321

Pandas обрабатывает таблицы. Matplotlib строит графики. FontProperties управляет шрифтами. Os проверяет файлы. Регулярные выражения извлекают данные. Настраивается шрифт Trajan Pro Bold из файла .otf. Если файл существует, применяется его имя глобально. Выводится сообщение о подключении.

Загружаем датасет DotА из CSV

Исходный размер 822x421

Создается функция extract_year для извлечения года из даты через регулярное выражение. Добавляется столбец Year ко всем строкам. Фильтруются данные только со вторыми местами Second_Place за 2011–2021 годы. Подсчитываются топ-4 команды по количеству вторых мест через value_counts. Выводится статистика топ-4 команд.

Определяем цвета для диаграммы

Исходный размер 733x653

Создается круговая диаграмма размером 14×10 с прозрачным фоном. Диаграмма строится из значений second_counts с подписями команд. Применяются цвета, проценты с одним знаком и поворот на 90 градусов. Заголовок «ТОП-4 команды по вторым местам Dota 2 (2011-2021)» белым жирным шрифтом. Подписи команд стилизуются белым жирным шрифтом размером 14. Проценты autotext окрашиваются черным жирным шрифтом.

Настраиваем отступы и сохраняем график

Исходный размер 887x240

Этот блок настраивает отступы фигуры для оптимальной компоновки. График сохраняется как PNG с высоким DPI и прозрачным фоном. Выводится сообщение о сохранении файла dota_second_place_pie_top4.png. Показывается круговая диаграмма.

Итоговый график:

Исходный размер 2460x2593

График, демонстрирующий топ-4 команды по второму месту

Анализ исторических данных по турнирам Dota 2
Проект создан 17.01.2026