Original size 1066x1515

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

PROTECT STATUS: not protected
The project is taking part in the competition
Ember Spirit
1 min

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

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

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

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

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

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

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

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

big
Original size 3944x863
big
Original size 4220x2184

Герои в Дота 2

Lina
1 min

График № 1

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

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

Original size 890x188

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

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

Original size 887x206

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

Original size 886x617

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

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

Original size 880x412

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

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

Original size 903x474

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

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

Original size 2972x1770

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

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

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

Mirana
1 min

График 2

Облако слов

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

Original size 791x684

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

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

Original size 820x601

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

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

Original size 789x368

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

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

Original size 3267x2046

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

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

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

Windranger
1 min

График 3

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

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

Original size 793x478

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

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

Original size 825x627

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

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

Original size 787x685

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

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

Original size 794x526

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

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

Original size 4042x2800

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

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

Queen of Pain
1 min

График 4

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

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

Original size 801x321

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

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

Original size 822x421

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

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

Original size 733x653

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

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

Original size 887x240

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

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

Original size 2460x2593

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

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