2022-5-26有客户要求对英雄联盟人物属性做分析,一个雷达图显示多人信息及可以对比
️简单介绍背景+前十名战力+各个位置的前十名战力️各个英雄的五边形战力️dashboard展示大家的战力(讲一下曲折的过程)️dashboard展示各个位置英雄的战力对比
表格数d
序号 | 位置 | 英雄 | 血量 | 血量赋分 | 蓝量 | 蓝量赋分 | 攻击 | 攻击赋分 | 防御 | 防御赋分 | 移速 | 移速赋分 |
27 | 刺客 | 澜 | 3300 | 84 | 440 | 70 | 171 | 80 | 135 | 65 | 400 | 95 |
3 | 坦克 | 程咬金 | 3250 | 74 | 0 | 50 | 170 | 80 | 200 | 95 | 390 | 90 |
15 | 战士 | 马可波罗 | 3041 | 49 | 0 | 50 | 176 | 80 | 157 | 75 | 390 | 90 |
13 | 战士 | 阿珂 | 3269 | 79 | 0 | 50 | 150 | 70 | 151 | 75 | 390 | 90 |
25 | 刺客 | 赵云 | 3366 | 89 | 430 | 65 | 169 | 75 | 148 | 70 | 390 | 90 |
16 | 战士 | 庄周 | 3146 | 59 | 420 | 60 | 164 | 75 | 148 | 70 | 390 | 90 |
20 | 战士 | 太乙真人 | 3274 | 80 | 420 | 60 | 166 | 75 | 145 | 70 | 390 | 90 |
4 | 坦克 | 吕布 | 3564 | 98 | 0 | 50 | 178 | 80 | 189 | 90 | 380 | 85 |
56 | 辅助 | 周瑜 | 3093 | 53 | 490 | 95 | 156 | 70 | 159 | 75 | 380 | 85 |
7 | 坦克 | 蒙恬 | 3079 | 51 | 0 | 50 | 185 | 85 | 157 | 75 | 380 | 85 |
51 | 辅助 | 妲己 | 3289 | 83 | 490 | 95 | 166 | 75 | 157 | 75 | 380 | 85 |
11 | 战士 | 云中君 | 3190 | 64 | 0 | 50 | 165 | 75 | 151 | 75 | 380 | 85 |
5 | 坦克 | 司空震 | 3300 | 84 | 0 | 50 | 175 | 80 | 150 | 75 | 380 | 85 |
9 | 坦克 | 李信 | 3470 | 94 | 0 | 50 | 181 | 85 | 149 | 70 | 380 | 85 |
17 | 战士 | 刘禅 | 3364 | 88 | 420 | 60 | 159 | 70 | 149 | 70 | 380 | 85 |
28 | 刺客 | 百里守约 | 3019 | 46 | 440 | 70 | 172 | 80 | 142 | 70 | 380 | 85 |
60 | 辅助 | 钟馗 | 3501 | 96 | 490 | 95 | 192 | 90 | 141 | 70 | 380 | 85 |
21 | 刺客 | 钟无艳 | 3338 | 86 | 430 | 65 | 167 | 75 | 140 | 70 | 380 | 85 |
18 | 战士 | 项羽 | 3045 | 50 | 420 | 60 | 182 | 85 | 139 | 65 | 380 | 85 |
24 | 刺客 | 韩信 | 3113 | 54 | 430 | 65 | 177 | 80 | 139 | 65 | 380 | 85 |
59 | 辅助 | 伽罗 | 3173 | 62 | 490 | 95 | 154 | 70 | 139 | 65 | 380 | 85 |
30 | 刺客 | 狄仁杰 | 3242 | 73 | 440 | 70 | 173 | 80 | 137 | 65 | 380 | 85 |
26 | 刺客 | 铠 | 3387 | 90 | 440 | 70 | 173 | 80 | 136 | 65 | 380 | 85 |
29 | 刺客 | 鲁班七号 | 3401 | 92 | 440 | 70 | 173 | 80 | 134 | 65 | 380 | 85 |
1 | 坦克 | 廉颇 | 3135 | 58 | 0 | 50 | 207 | 95 | 176 | 85 | 370 | 80 |
14 | 战士 | 艾琳 | 3135 | 57 | 0 | 50 | 168 | 75 | 165 | 80 | 370 | 80 |
19 | 战士 | 鲁班大师 | 3417 | 93 | 420 | 60 | 176 | 80 | 156 | 75 | 370 | 80 |
8 | 坦克 | 亚瑟 | 3622 | 99 | 0 | 50 | 200 | 95 | 153 | 75 | 370 | 80 |
6 | 坦克 | 夏洛特 | 3267 | 78 | 0 | 50 | 179 | 80 | 152 | 75 | 370 | 80 |
53 | 辅助 | 赢政 | 3125 | 56 | 490 | 95 | 162 | 75 | 149 | 70 | 370 | 80 |
39 | 法师 | 李白 | 2968 | 43 | 450 | 75 | 163 | 75 | 148 | 70 | 370 | 80 |
49 | 射手 | 金蝉 | 3168 | 61 | 490 | 95 | 184 | 85 | 144 | 70 | 370 | 80 |
2 | 坦克 | 白起 | 3040 | 48 | 0 | 50 | 183 | 85 | 144 | 70 | 370 | 80 |
23 | 刺客 | 夏侯惇 | 3221 | 67 | 430 | 65 | 179 | 80 | 137 | 65 | 370 | 80 |
12 | 战士 | 司马懿 | 3196 | 65 | 0 | 50 | 168 | 75 | 135 | 65 | 370 | 80 |
55 | 辅助 | 甄姬 | 3149 | 60 | 490 | 95 | 180 | 85 | 149 | 70 | 360 | 75 |
31 | 法师 | 后羿 | 3232 | 69 | 440 | 70 | 166 | 75 | 146 | 70 | 360 | 75 |
58 | 辅助 | 小乔 | 3088 | 52 | 490 | 95 | 159 | 70 | 146 | 70 | 360 | 75 |
45 | 射手 | 牛魔 | 3537 | 97 | 470 | 85 | 169 | 75 | 145 | 70 | 360 | 75 |
40 | 法师 | 娜可露露 | 3239 | 72 | 450 | 75 | 153 | 70 | 145 | 70 | 360 | 75 |
54 | 辅助 | 武则天 | 3019 | 45 | 490 | 95 | 168 | 75 | 143 | 70 | 360 | 75 |
44 | 射手 | 大乔 | 3177 | 63 | 470 | 85 | 174 | 80 | 138 | 65 | 360 | 75 |
37 | 法师 | 盾山 | 3361 | 87 | 450 | 75 | 165 | 75 | 137 | 65 | 360 | 75 |
52 | 辅助 | 安琪拉 | 3323 | 85 | 490 | 95 | 162 | 75 | 137 | 65 | 360 | 75 |
38 | 法师 | 哪吒 | 3483 | 95 | 450 | 75 | 160 | 75 | 137 | 65 | 360 | 75 |
47 | 射手 | 蔡文姬 | 3238 | 71 | 470 | 85 | 175 | 80 | 136 | 65 | 360 | 75 |
41 | 射手 | 兰陵王 | 3300 | 84 | 450 | 75 | 170 | 80 | 136 | 65 | 360 | 75 |
33 | 法师 | 成吉思汗 | 3027 | 47 | 440 | 70 | 170 | 80 | 136 | 65 | 360 | 75 |
34 | 法师 | 虞姬 | 2977 | 44 | 440 | 70 | 170 | 80 | 133 | 65 | 360 | 75 |
10 | 坦克 | 狂铁 | 3263 | 76 | 0 | 50 | 163 | 75 | 149 | 70 | 350 | 70 |
57 | 辅助 | 高渐离 | 3122 | 55 | 490 | 95 | 176 | 80 | 148 | 70 | 350 | 70 |
36 | 法师 | 明世隐 | 3255 | 75 | 440 | 70 | 173 | 80 | 145 | 70 | 350 | 70 |
42 | 射手 | 镜 | 3264 | 77 | 460 | 80 | 188 | 85 | 144 | 70 | 350 | 70 |
48 | 射手 | 苏烈 | 3284 | 82 | 470 | 85 | 187 | 85 | 141 | 70 | 350 | 70 |
46 | 射手 | 孙膑 | 3280 | 81 | 470 | 85 | 175 | 80 | 141 | 70 | 350 | 70 |
22 | 刺客 | 云缨 | 3237 | 70 | 430 | 65 | 166 | 75 | 141 | 70 | 350 | 70 |
35 | 法师 | 瑶 | 2587 | 42 | 440 | 70 | 157 | 70 | 141 | 70 | 350 | 70 |
32 | 法师 | 黄忠 | 3226 | 68 | 440 | 70 | 156 | 70 | 140 | 70 | 350 | 70 |
43 | 射手 | 东皇太一 | 3201 | 66 | 470 | 85 | 184 | 85 | 134 | 65 | 350 | 70 |
50 | 射手 | 上官婉儿 | 3389 | 91 | 490 | 95 | 165 | 75 | 134 | 65 | 350 | 70 |
雷达图代码:
import pyecharts.options as opts
from pyecharts.charts import Radar
import pandas as pd
df = pd.read_excel("WZRY.xlsx")
hero = df['英雄'] #标签
print(len(hero))
title = ['蓝量赋分', '血量赋分', '攻击赋分', '防御赋分', '移速赋分', '蓝量赋分'] # 标签
# 从data查询A6 数据
scores = pd.DataFrame({'英雄':hero})
scores1 = scores.merge(df,how='left',on='英雄')[['蓝量赋分', '血量赋分', '攻击赋分', '防御赋分', '移速赋分']]
#print(scores1)
# 转换为list
scores2 = scores1.values.tolist()
print(type(scores2[0]))
v1=[]
v1.append(scores2[0])
print(v1)
print(type(v1))
v2 =[]
v2.append(scores2[1])
for i in range(len(hero)):
print(i)
radar=Radar()
Radar(init_opts=opts.InitOpts(width="1280px", height="1520px", bg_color="#CCCCCC"))
radar.add_schema(
schema=[
opts.RadarIndicatorItem(name="蓝量赋分"),
opts.RadarIndicatorItem(name="血量赋分"),
opts.RadarIndicatorItem(name="攻击赋分"),
opts.RadarIndicatorItem(name="防御赋分"),
opts.RadarIndicatorItem(name="移速赋分"),
],
)
for i in range(len(hero)):
print(i)
v1 = []
v1.append(scores2[i])
radar.add(
series_name=hero[i],
data=v1,
linestyle_opts=opts.LineStyleOpts(color="#CD0000"),
)
radar.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
radar.set_global_opts(
title_opts=opts.TitleOpts(title="Radar-多例模式"), legend_opts=opts.LegendOpts()
)
radar.render("basic_radar_chart.html")
radar.add_schema(
schema=[
opts.RadarIndicatorItem(name="蓝量赋分"),
opts.RadarIndicatorItem(name="血量赋分"),
opts.RadarIndicatorItem(name="攻击赋分"),
opts.RadarIndicatorItem(name="防御赋分"),
opts.RadarIndicatorItem(name="移速赋分"),
]
)
for i in range(len(hero)):
print(i)
v1 = []
v1.append(scores2[i])
radar.add(
series_name=hero[i],
data=v1,
linestyle_opts=opts.LineStyleOpts(color="#CD0000"),
)
radar.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
radar.set_global_opts(
legend_opts=opts.LegendOpts(selected_mode="single"),
title_opts=opts.TitleOpts(title="Radar-单例模式"),
)
radar.render("radar_selected_mode.html")
柱状图代码:
import plotly.graph_objects as go
import plotly.express as px
import numpy as np
import pandas as pd
df = pd.read_excel("WZRY.xlsx")
fig = px.bar(df,
x='英雄',
y='血量',
color='血量')
fig.show()
df2=df[df["位置"] == "坦克"]
df3=df[df["位置"] == "战士"]
df4=df[df["位置"] == "法师"]
df5=df[df["位置"] == "射手"]
df6=df[df["位置"] == "辅助"]
trace0=go.Bar(
x=df2["英雄"],
y=df2["血量"],
name='坦克'
)
trace1=go.Bar(
x=df3["英雄"],
y=df3["血量"],
name='战士'
)
trace2=go.Bar(
x=df4["英雄"],
y=df4["血量"],
name='法师'
)
trace3=go.Bar(
x=df5["英雄"],
y=df5["血量"],
name='射手'
)
trace4=go.Bar(
x=df6["英雄"],
y=df6["血量"],
name='辅助'
)
#%%
data=[trace0,trace1,trace2,trace3,trace4]
print(data)
layout=go.Layout(
barmode='group'
)
#print(layout)
go.Figure(data=data)
#
fig2 = px.bar(df,
x='英雄',
y='移速',
color='位置')
fig2.show()