作者:愛德寶器
來源:資料管道(ID:adc9556)
-
問題
打比賽的時候,選擇藍方勝率是否是一定高於紅方?EDG、WE、RNG以及像國民老公的IG這些戰隊勝率如何?不同的戰隊特點是什麼呢?某個時段的戰隊戰績排行又是什麼情況?
-
分析
匯入資料並修改欄位名:
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from datetime import date, timedelta, datetime
from pyecharts import Bar,Pie,Line,Geo,Map,Style,WordCloud
plt.rc("font", size=14)
plt.rcParams['savefig.dpi'] = 100 #圖片畫素
plt.rcParams['figure.dpi'] = 100 #解析度
Data = pd.read_csv('C:/Users/18030/Desktop/LOL.csv')
Data.rename(columns={'戰隊':'Team','攻擊':'Attack',"法術":"Magic","防禦":"Defence","團戰":"Group","機動":"Flex","是否紅方":"Is_Red","是否獲勝":"IS_V"},inplace=True)
Data.head()
01 不同隊伍選擇紅方,藍方的輸贏比分析
from pyecharts import Bar
Data_1 = pd.pivot_table(Data,values='IS_V',index='Team',columns='Is_Red',aggfunc='sum')
Data_1.rename(columns={0:"NO",1:"YES"},inplace=True)
attr = Data_1.index.tolist()
v1 = Data_1['NO'].values.tolist()
v2 = Data_1['YES'].values.tolist()
bar = Bar("")
bar.add("YES", attr, v2, is_stack=True)
bar.add("NO", attr, v1, is_stack=True)
bar
視覺化結果:
分析結果:
-
JDG、NB、WE、IG等大多數隊伍選擇選擇藍方的勝場高於紅方。
-
RNG、EDG、IM選擇紅方的勝場高於藍方。
02 不同隊伍的打法特點是怎樣的呢?
from pyecharts import Radar
Data_2 = Data.groupby('Team').mean().stack()
EDG_VALUE = [Data_2['EDG'][:5].values.tolist()]
WE_VALUE = [Data_2['WE'][:5].values.tolist()]
RNG_VALUE = [Data_2['RNG'][:5].values.tolist()]
radar = Radar()
c_schema= [ {"name": "Attack", "max": 55, "min": 53},
{"name": "Magic", "max": 52.8, "min": 50},
{"name": "Defence", "max": 55, "min": 52},
{"name": "Group", "max": 76, "min":72},
{"name": "Flex", "max": 68, "min":64} ]
radar.config(c_schema=c_schema, shape='circle')
radar.add("EDG", EDG_VALUE, is_splitline=True, is_axisline_show=True,line_width =2 )
radar.add("WE", WE_VALUE, label_color=["#4e79a7"],item_color="#000",line_width=2)
radar.add("RNG", RNG_VALUE, label_color=['rgba(443,23,112,121)'],item_color='rgba(413,123,23,412)',line_width=2)
radar
說明:
這裡只畫出RNG、EDG、WE的打法特點。
視覺化結果:
很明顯的看出來這三隻隊伍的打法特點:
-
EDG更註重進攻,而防守是其短板。
-
RNG的打法是很靈活的,並且在法術和防禦很出色。
-
WE不是激進的打法,相對來說其更願意防守和團隊輸出。
03 某個時段的戰隊戰績排行又是什麼情況呢?
from pyecharts import Bar
Data_3 = Data.groupby('Team').sum()
Data_4 = Data_3['IS_V']
Data_4 = Data_4.sort_values(ascending=False)
attr = Data_4.index.values.tolist()
v = Data_4.values.tolist()
bar = Bar()
bar.use_theme('dark')
bar.add("戰隊勝場排行榜",attr,v)
bar
視覺化結果:
分析結果:
-
該時段WE、IG、RNG的勝場相對來說更好一些。
-
IM、DAN等戰隊相對這些老牌隊伍遜色不少。
04 不同戰隊的勝率如何?
from pyecharts import Pie
Data_7 = Data.groupby('Team').sum()
Index = Data_7.index
ALL_COUNT = np.array([len(Data[Data.Team == i ]) for i in Index])
ALL_WIN =Data_7.IS_V.values
WIN_PER = ALL_WIN/ALL_COUNT
LOS_PER = 1 - WIN_PER
Data_8 = pd.DataFrame(index=Index,columns=['WIN_PER','LOS_PER'])
Data_8['WIN_PER'] = WIN_PER*100
Data_8['LOS_PER'] = LOS_PER*100
Data_8.sort_values(by='WIN_PER',ascending=False,inplace=True)
pie = Pie(title_pos='center')
style = Style()
pie_style = style.add(
label_pos="center",
is_label_show=True,
label_text_color=None
)
pie.add(
"", ["EDG", ""], Data_8.iloc[0].values.tolist(), center=[10, 30], radius=[18, 24], **pie_style
)
pie.add(
"", ["RNG", ""], Data_8.iloc[1].values.tolist(), center=[30, 30], radius=[18, 24], **pie_style
)
pie.add(
"", ["WE", ""], Data_8.iloc[2].values.tolist(), center=[50, 30], radius=[18, 24], **pie_style
)
pie.add(
"", ["IG", ""], Data_8.iloc[3].values.tolist(), center=[70, 30], radius=[18, 24], **pie_style
)
pie.add(
"", ["OMG", ""], Data_8.iloc[4].values.tolist(), center=[90, 30], radius=[18, 24], **pie_style
)
pie.add(
"", ["NB", ""], Data_8.iloc[5].values.tolist(), center=[10, 70], radius=[18, 24], **pie_style
)
pie.add(
"", ["JDG", ""], Data_8.iloc[6].values.tolist(), center=[30, 70], radius=[18, 24], **pie_style
)
pie.add(
"", ["SNG", ""], Data_8.iloc[7].values.tolist(), center=[50, 70], radius=[18, 24], **pie_style
)
pie.add(
"", ["LGD", ""], Data_8.iloc[8].values.tolist(), center=[70, 70], radius=[18, 24], **pie_style
)
pie.add(
"", ["DAN", ""], Data_8.iloc[9].values.tolist(), center=[90, 70], radius=[18, 24], **pie_style
)
pie
視覺化結果:
-
EDG、RNG、WE等戰隊的勝率能到到60%以上。
-
OMG、IG的勝率在55%以上。
-
DAN等戰隊的勝率在40%以下。