“欢迎来到召唤术峡谷~”
英雄联盟作为一款长青游戏,风靡了这么多年,依旧热度不减!
今天我们就来分析一下战队的阵容选择会对胜率带来什么样的影响。
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()
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)
画出红蓝方胜场直方图
由上面的数据和图可以看到,蓝方有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
从图中可以看到,作为红方,想要胜利攻击力、法术强度、防御性能都要比在蓝方时强一些,团战能力更是达到顶峰,而作为蓝色方来说,均衡发展就可以赢得胜利,团战能力也不需要特别强。
(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))
从图中可以看出,
胜场比负场多的战队分别有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
从上图可以看出,每支队伍在选用英雄时都有自己的特点。
EDG更爱攻击性的阵容,RNG法术、防御做的不错,WE则更偏向团战和机动性。
所以说,没有绝对的阵容,只要队友不坑、猥琐别浪,游戏还是能赢得。
看了分析,赶快去召唤师峡谷战斗吧!
留言与评论(共有 0 条评论) |