您當前的位置:首頁 > 書法

還不會選英雄陣容?python來幫你carry全場

作者:由 DataCastle資料城堡 發表于 書法時間:2019-01-09

還不會選英雄陣容?python來幫你carry全場

“歡迎來到召喚術峽谷~”

英雄聯盟作為一款長青遊戲,風靡了這麼多年,2018全球總決賽的IG冠軍一出更是引發了眾多擼迷又將遊戲重新拾起。

今天我們就來分析一下戰隊的陣容選擇會對勝率帶來什麼樣的影響。

1。載入必要的包

import pandas as pd

import matplotlib。pyplot as plt

import seaborn as sns

from pyecharts import Radar

2。讀取並觀察資料情況

dat_hero=pd。read_csv(‘TeamHero_index。csv’)

dat_hero。head()

還不會選英雄陣容?python來幫你carry全場

3。資料分析

(1)紅藍方因素對勝負的影響

眾所周知,在英雄聯盟中,由於藍方會先手ban英雄及pick英雄,因此通常藍方的勝率更高一些。讓我們來看看資料是否能夠印證這一點。

取出紅方獲勝的資料:

red_win1=dat_hero[dat_hero[‘是否紅方’]。isin([‘1’])]

red_win1=red_win1[red_win1[‘是否獲勝’]。isin([‘1’])]

red_win2=dat_hero[dat_hero[‘是否紅方’]。isin([‘0’])]

red_win2=red_win2[red_win2[‘是否獲勝’]。isin([‘0’])]

red_win=pd。concat([red_win1,red_win2])

red_win。shape

(208,8)

取出藍方獲勝的資料

blue_win1=dat_hero[dat_hero[‘是否紅方’]。isin([‘1’])]

blue_win1=blue_win1[blue_win1[‘是否獲勝’]。isin([‘0’])]

blue_win2=dat_hero[dat_hero[‘是否紅方’]。isin([‘0’])]

blue_win2=blue_win2[blue_win2[‘是否獲勝’]。isin([‘1’])]

blue_win=pd。concat([blue_win1,blue_win2])

blue_win。shape

(316,8)

畫出紅藍方勝場直方圖

還不會選英雄陣容?python來幫你carry全場

由上面的資料和圖可以看到,藍方有316勝場,紅方僅有208勝場。可以印證藍有相對而言更有優勢。

下面我們再對紅藍方所選用的英雄屬性進行分析。

計算紅方獲勝時英雄平均屬性:

value1=[[red_win[‘攻擊’]。mean(),red_win[‘法術’]。mean(),red_win[‘防禦’]。mean(),red_win[‘團戰’]。mean(),red_win[‘機動’]。mean()]]

計算藍方獲勝時英雄平均屬性:

value2=[[blue_win[‘攻擊’]。mean(),blue_win[‘法術’]。mean(),blue_win[‘防禦’]。mean(),blue_win[‘團戰’]。mean(),bluewin[‘機動’]。mean()]]

from pyecharts import Radar

radar = Radar()

#用於調整雷達各維度的範圍大小

c_schema= [{“name”: “攻擊”, “max”: 54。3, “min”: 54。1},

{“name”: “法術”, “max”: 52, “min”: 51},

{“name”: “防禦”, “max”: 54, “min”: 52},

{“name”: “團戰”, “max”: 73。2, “min”: 71},

{“name”: “機動”, “max”: 66, “min”: 65}]

radar。config(c_schema=c_schema)

radar。add(“紅方獲勝”, value1,item_color=“#f9713c”,area_color=‘#ea3a2e’,area_opacity=0。3)

radar。add(“藍方獲勝”, value2,item_color=‘#2525f5’,area_color=‘#2525f5’,area_opacity=0。3)

radar

還不會選英雄陣容?python來幫你carry全場

從圖中可以看到,作為紅方,想要勝利攻擊力、法術強度、防禦性能都要比在藍方時強一些,團戰能力更是達到頂峰,而作為藍色方來說,均衡發展就可以贏得勝利,團戰能力也不需要特別強。

(2) 各個戰隊戰績分析

plt。figure(figsize=(15,7))

plt。xlabel(‘戰隊’,fontsize=30,fontproperties=myfont)

plt。ylabel(‘次數’,fontsize=30,fontproperties=myfont)

sns。countplot(x=‘戰隊’,hue=‘是否獲勝’,data=dat_hero,palette=sns。color_palette(‘hls’,7))

還不會選英雄陣容?python來幫你carry全場

從圖中可以看出,

勝場比負場多的戰隊分別有EDG, IG, RNG, WE, NB,OMG這六支戰隊。

勝場最多的依次是 IG, RNG, WE這三支戰隊。

我們對這三支戰隊所選用英雄屬性進行分析。

#計算EDG戰隊所選用英雄的平均屬性

EDG=dat_hero[dat_hero[‘戰隊’]。isin([‘EDG’])]

edg_value=[[EDG[‘攻擊’]。mean(),EDG[‘法術’]。mean(),EDG[‘防禦’]。mean(),EDG[‘團戰’]。mean(),EDG[‘機動’]。mean()]]

#計算RNG戰隊所選用英雄的平均屬性

RNG=dat_hero[dat_hero[‘戰隊’]。isin([‘RNG’])]

rng_value=[[RNG[‘攻擊’]。mean(),RNG[‘法術’]。mean(),RNG[‘防禦’]。mean(),RNG[‘團戰’]。mean(),RNG[‘機動’]。mean()]]

#計算WE戰隊所選用英雄的平均屬性

WE=dat_hero[dat_hero[‘戰隊’]。isin([‘WE’])]

we_value=[[WE[‘攻擊’]。mean(),WE[‘法術’]。mean(),WE[‘防禦’]。mean(),WE[‘團戰’]。mean(),WE[‘機動’]。mean()]]

radar1 = Radar()

#用於調整雷達各維度的範圍大小

c_schema= [{“name”: “攻擊”, “max”: 55, “min”: 53},

{“name”: “法術”, “max”: 52。5, “min”: 50},

{“name”: “防禦”, “max”: 55, “min”: 52},

{“name”: “團戰”, “max”: 76, “min”: 72},

{“name”: “機動”, “max”: 68, “min”: 64}]

radar1。config(c_schema=c_schema)

radar1。add(“EDG”, edg_value,item_color=“#f9713c”,line_width=3)

radar1。add(“RNG”, rng_value,item_color=‘#2525f5’,line_width=3)

radar1。add(“WE”, we_value,item_color=‘#000’,line_width=3)

radar1

還不會選英雄陣容?python來幫你carry全場

從上圖可以看出,每支隊伍在選用英雄時都有自己的特點。

EDG更愛攻擊性的陣容,RNG法術、防禦做的不錯,WE則更偏向團戰和機動性。

所以說,沒有絕對的陣容,只要隊友不坑、猥瑣別浪,遊戲還是能贏得。

看了分析,趕快去召喚師峽谷戰鬥吧!

在公眾號“DC學習助手”後臺回覆“LOL”即可領取資料噢~

標簽: mean  Dat  Hero  red  blue