Original size 1536x2304

Анализ героев в League Of Legends

PROTECT STATUS: not protected

Выбор данных

Для своего проекта я выбрал игру League of Legends. Мне интересно какие есть персонажи, в чем их разница и какие есть корреляции между характеристиками героев. Это будет полезно для создания своей игры, так как если в игре есть несколько персонажей, то сбалансировать их характеристики очень важно.

Я нашел dataset на сайте kaggle.com. В нём были предоставлены все нужные для исследования данные.

Все графики были сделаны в Google Collab с помощью встроенной в него LLM Gemini.

Обложка была взята с сайта: https://wallhere.com/ru/wallpaper/1975907

Используемые графики в проекте:

- Столбчатая диаграмма - Боксплот - Линейный график - Скрипичная диаграмма - График роя Оформление графиков:

В оформлении своих графиков и заголовков в проекте я использовал один и тот же цвет:

#ADD8E6

Анализ ролей

df.groupby ('Role').size ().plot (kind='barh', color=['#ADD8E6']) plt.gca ().spines[['top', 'right', ]].set_visible (False) plt.show ()

big
Original size 600x413

График показывающий количество персонажей с определенной ролью в игре.

Интересно, что больше всего героев, которые направлены на защиту и атаку первой линии. Изначально надежды были на ADC (Attack Damage Carrier). Это персонажи, которые наносят больше всего урона, однако защитники первой и второй линий опережают абсолютно все роли.

Анализ характеристик

figsize = (12, 1.2 * len (df['Role'].unique ())) plt.figure (figsize=figsize) sns.boxplot (x='Base Attack Damage', y='Role', data=df, palette=['#ADD8E6'] * len (df['Role'].unique ()), orient='h') sns.despine (top=True, right=True, bottom=True, left=True) plt.show ()

Original size 1034x525

График показывающий базовую атаку каждой роли.

Тут в качестве феномена выступает базовая атака. Опять в лидеры выступили персонажи, защищающие первую линию, а не, казалось бы, самые сильные ADC, по крайней мере по названию.

role_avg_health = df.groupby ('Role')['Base Health'].mean () plt.figure (figsize=(12, 6)) plt.plot (role_avg_health.index, role_avg_health.values, color='#ADD8E6') plt.xlabel ('Role') plt.ylabel ('Average Base Health') plt.title ('Average Base Health by Role') plt.show ()

Original size 1005x547

График, показывающий среднюю жизнь персонажа для каждой из ролей.

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

role_avg_gold_efficiency = df.groupby ('Role')['Gold Efficiency'].mean () df['Gold Efficiency'] = df['Role'].map (role_avg_gold_efficiency) plt.figure (figsize=(10, 6)) sns.violinplot (x='Role', y='Gold Efficiency', data=df, palette=['#ADD8E6'], inner='stick', color='#ADD8E6') # Set violin color plt.gca ().spines[['top', 'right', ]].set_visible (False) plt.xlabel ('Role') plt.ylabel ('Average Gold Efficiency') plt.title ('Average Gold Efficiency by Role') for role, avg_efficiency in role_avg_gold_efficiency.items (): plt.text (role, avg_efficiency, f'{avg_efficiency:.2f}', ha='center', va='bottom', fontsize=10, color='#ADD8E6') plt.show ()

Original size 863x547

График, показывающий среднее значение средней эффективности золота для каждой роли.

Эффективность золота — производная эвристика для сравнения эффективности предметов на основе их статистики и цены (стоимости золота). Интересно то, что вещи для персонажей второй полосы заметно менее эффективны, чем у остальных.

figsize = (12, 1.2 * len (df['Role'].unique ())) plt.figure (figsize=figsize) sns.swarmplot (x='Role', y='Base Armor', data=df, palette=['#ADD8E6'] * len (df['Role'].unique ())) # Use swarmplot sns.despine (top=True, right=True, bottom=True, left=True) plt.show ()

Original size 996x525

График, показывающий количество персонажей с определенной защитой в зависимости от роли.

Больше всего защиты у персонажей роли помощников. Это те персонажи, которые дают прибавку к характеристикам другим персонажам или восстанавливают их. Это кажется логичным, хотя я ожидал, что герои средней полосы покажут себя лучше.

Заключение

Интересно было обнаружить весьма шокирующую для меня статистику относительно персонажей в игре League of Legends. Я рад, что мне удалось провести данный анализ, так как теперь я знаю, что многие характеристики не должны зависеть от конкретной роли персонажа, а даже наоборот.

Для более четкого анализа нужно будет еще просмотреть способности каждого из персонажей и насколько они сильные по мнению других игроков.

Но уже сейчас можно сказать, что определенные корреляции в персонажах есть, но, видимо, самых базовых характеристик для их отслеживания не хватает. Сейчас можно сделать вывод, что одни из самых сильных персонажей являются герои первой линии.

Ссылка на блокнот

Анализ героев в League Of Legends
We use cookies to improve the operation of the HSE website and to enhance its usability. More detailed information on the use of cookies can be fou...
Show more