用Python画雷达图,分析多指标数据

雷达图,又叫蜘蛛图,说到蜘蛛,我就想到黑寡妇,说到黑寡妇,我就想到黑百合,说到黑百合,我就想到形象和她比较相反的天使,所以本文用雷达图来比较下黑百合和天使这两个英雄的数据。


第一步:安装并导入相关包

主要用到了pyecharts这个包,需要注意的是不同版本的pyecharts,代码会有出入,本文安装的是1.7.1版本

<code>pip install pyecharts/<code>

安装完成后导入

<code>from pyecharts import options as opts
from pyecharts.charts import Radar/<code>


第二步:准备数据

下面是我随便定义的两个英雄的战斗数据,先不用管数据中每个值代表什么指标,会在下面第三步中添加。

这里需要注意的是数据必须是二维的,不然会集中在一个指标上显示。

<code>value1 = [[8500, 6000, 450, 100, 80, 1000]]
value2 = [[2000, 8000, 450, 400, 70, 4900]]/<code>


第三步:画图

以下步骤中的参数都比较好懂,就不细讲了,大家可以通过改变每个参数的值,观察变化效果,就清楚了。

1)先定义一个类

<code>randar = Radar()/<code>

2)添加schema架构,其实就是添加需要呈现的指标,并规定每个指标的最大值和最小值。

<code>randar.add_schema(schema=[opts.RadarIndicatorItem(name="输出伤害", max_=10000),
opts.RadarIndicatorItem(name="承受伤害", max_=10000),
opts.RadarIndicatorItem(name="存活时间", max_=500),
opts.RadarIndicatorItem(name="目标攻防时间", max_=500),
opts.RadarIndicatorItem(name="武器命中率", max_=100),
opts.RadarIndicatorItem(name="治疗量", max_=5000)])/<code>

3)添加数据

<code>randar.add("黑百合", value1, color="black", areastyle_opts=opts.AreaStyleOpts(opacity=0.3, color="black"),)
randar.add("天使", value2, color="red", areastyle_opts=opts.AreaStyleOpts(opacity=0.3, color="red"),)/<code>

4)其它选项设置

<code>randar.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
randar.set_global_opts(title_opts=opts.TitleOpts(title="英雄数据对比"))/<code>

5)生成html文件

<code>randar.render('英雄数据对比.html')/<code>


打开生成的html文件,如下:

关注微信公众号“Python小镇”,发现更多干货知识!