
song by John Siegler and John Loeffler and performed by Jason Paige
Концепция проекта
Для анализа был выбран датасет Pokemon with stats найден на сайте Kaggle.
Для визуализации данных были я выбрала следующие типы графиков:
1. Гистограмма — для выражения убывания количества представителей вида. 2. Линейный график — для наглядности эскалации и деэскалации силы. 3. Диаграмма рассеивания — для обозначения множества объектов, имеющих несколько характеристик путем расположения на графике и размера обозначенной точки. 4. Линейная диаграмма — для визуализации иерархичности показателей. 5. Тепловая карта — для выявления наибольших корреляций путем контраста цветов.
Для анализа данных, работе с датасетом и написания кода для графиков я использовал нейросеть DeepSeek. Промпты будут представлены вместе с исходным файлом GoogleCollab.
Обработка данных

Для полноценной работы мне понадобились библиотеки pandas, numpy, matplotlib.pyplot, seaborn, kagglehub и os.
Через библиотеку kagglehub я подключая датасет с сайта Kaggle напрямую, далее нахожу csv файл и подключаю в датафрейм pandas. И наконец данные просматриваются.

Удаляю дубликаты и преобразую типы данных для последующего анализа.
Форматы визуализации
На примере одного из блоков данных для составления графика, я продемонстрирую изучающий и обучающий форматы данных.
Цель в ниже приведенных графиках была в подсчете и выявлении лидеров в категориях Type1 и Type2, относящихся к типу стихий конкретных покемонов. Изучающий формат позволяет собрать массив данных по разным графиком, с учетом разных переменных и облегчает дальнейшее создание обучающего формата данных.
1. Линейчатая гистограмма с учетом Type1 2. Круговая диаграмма с выявлением топ-10 3. Линейчатая гистограмма с учетом Type1 и Type2


Код к вышеприведенным графикам.
Столбчатая диаграмма, наполненная статистическими заключениями.
Основные статистические методы
type_counts = df_clean['Type 1'].value_counts () type_percentages = (type_counts / total_pokemon * 100).round (1)
top_15 = df_clean.nlargest (15, 'Total')
generation_counts = df_clean['Generation'].value_counts ().sort_index ()
Метод нашел применение практически во всех графиках и используется для подсчета наблюдений в каждой из категорий, удобен тем, что позволяет сразу увидеть лидеров и отстающих к категориях.
generation_avg = df_clean.groupby ('Generation')['Total'].mean ()
df_top_types = df_clean[df_clean['Type 1'].isin (top_types)]
Объединение данных по группам очень удобно для дальнейшего сравнения.
Defense plt.scatter (df['Attack'], df['Defense'])
sns.lineplot (x='Generation', y='Total', data=generation_avg)
Сравнение и выявление различий и взаимосвязей между переменными являются основой статистики в половине из графиков.
Итоговые графики

Я выявила наиболее и наименее распространенные типы покемонов, учитывая тех, что имеют один тип и тех, что имеют два. На удивление наиболее распространенным оказался Водный тип, а наименее Летающий, что выглядит не совсем реалистичным.

На момент создания найденного датасета, в него внесены только 6 первых поколений.
Линейный график с измерением средней силы на поколение.

Диаграмма рассеивания. Величина точек показывает количество Здоровья.

Линейчатая диаграмма с сильнейшими покемонами и их типами.

На основе данных можно сделать интересные выводы, о том, что чаще всего высокая Защиты замедляет, а высокий показатель Атаки скорее всего будет означать более быстрого покемона.
Тепловая карта корреляций показателей друг с другом.
Заключение
Собранные и проанализированные данные подарили мне чувство ностальгии и большей осознанности своего детства. Со временем подход к восприятию видеоигр, особенно тех, с персонажами которых вы строите крепкую связь, координально меняется.
Но теперь с собранными данными, я с радостью вернусь с игры детства и постараюсь применить статистические заключения для лучшего геймплея.
DeepSeek — для помощи написания кодов для графиков.