【Python可视化系列】一文教你绘制雷达图(源码)

这是我的第234篇原创文章。

一、引言

雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的图形方法,也称为蜘蛛图或星形图。雷达图通常用于综合分析多个指标,具有完整,清晰和直观的优点。通常由多个等角度放置的轴组成,每个轴代表数据的一个维度,而数据值则以距离轴的位置表示。在机器学习中可以用雷达图直观的比较多个模型不同评价指标的数值大小。

二、实现过程

2.1 代码

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings("ignore")

font = {'family': 'Times New Roman',
        'size': 12,
        }
sns.set(font_scale=1.2)
plt.rc('font',family='Times New Roman')
plt.style.use('ggplot')# 使用ggplot的绘图风格

# 构造数据(三个模型四个维度比较)
values1= [0.778, 0.833, 0.818, 0.847]
values2= [0.818, 0.846, 0.833, 0.881]
values3= [0.909, 0.846, 0.875, 0.850]

feature = ["Sensitivity","Specificity","Accuracy","AUC"]

# 设置每个数据点的显示位置,在雷达图上用角度表示
angles=np.linspace(0, 2*np.pi,len(feature), endpoint=False)
angles=np.concatenate((angles,[angles[0]]))
feature = np.concatenate((feature, [feature[0]]))

# 绘图
fig=plt.figure(figsize=(8,8))
# 设置为极坐标格式
ax = fig.add_subplot(111, polar=True)

for values in [values1, values2,values3]:
# 拼接数据首尾,使图形中线条封闭
    values=np.concatenate((values,[values[0]]))
    # 绘制折线图
    ax.plot(angles, values, 'o-', linewidth=2)

for values in [values1, values2,values3]:
    values=np.concatenate((values,[values[0]]))
    # 填充颜色
    ax.fill(angles, values, alpha=0.25)
    
# 设置图标上的角度划分刻度,为每个数据点处添加标签
ax.set_thetagrids(angles * 180/np.pi, feature,fontsize=14,style='italic')
# 设置雷达图的范围
ax.set_ylim(0.5,1)
# 设置雷达图的0度起始位置
ax.set_theta_zero_location('N')
# 设置雷达图的坐标值显示角度,相对于起始角度的偏移量
ax.set_rlabel_position(270)
plt.legend(["Model1", "Model2",'Model3'], loc='best')
# 添加标题
plt.title('Comparison of classifier evaluation indicators',fontsize = 14)
# 添加网格线
plt.show()

三、结果

结果如下:

图片

作者简介:

读研期间发表6篇SCI数据挖掘相关论文,现在某研究院从事数据算法相关科研工作,结合自身科研实践经历不定期分享关于Python、机器学习、深度学习、人工智能系列基础知识与应用案例。致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。需要数据集和源码的小伙伴可以关注底部公众号添加作者微信。

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
数据可视化是指通过图表、图形等方式将数据呈现出来,以便更直观地理解和分析数据。而Python是一种功能强大的编程语言,可以用于数据处理和可视化。 英雄联盟是一款多人在线游戏,每个玩家在游戏中扮演不同的角色,并有各自的能力值。雷达图是一种常用的数据可视化方式,可以将多个维度的数据以雷达形式展示,便于对比和分析。 要绘制个人能力值雷达图,首先需要搜集每个玩家的能力值数据。这些数据可以包括击杀数、死亡数、助攻数、经济值等指标,代表了玩家在游戏中的表现。 然后,使用Python中的数据可视化库,如matplotlib或seaborn,可以很方便地进行雷达图绘制。首先,根据数据,确定雷达图的维度和范围。每个维度对应一个轴,而轴的长度表示能力值的大小。 接下来,根据每个玩家的能力值数据,在雷达图绘制相应的多边形。每个数据点对应一个顶点,将所有顶点连接起来,就形成了一条线,代表该玩家的能力值图案。 最后,可以为雷达图添加标题、轴标签和图例等元素,使得图表更加清晰和易于理解。同时,可以通过不同的颜色或图案来区分不同的玩家或队伍,以便更直观地比较他们之间的能力差异。 绘制完毕后,我们可以通过观察雷达图来了解每个玩家在不同维度上的表现,并进行比较和分析。例如,我们可以发现某个玩家在击杀和经济方面表现突出,但在死亡和助攻方面相对较弱。 总而言之,使用Python进行数据可视化,特别是绘制个人能力值雷达图,可以帮助我们更好地理解和分析英雄联盟玩家的能力表现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据杂坛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值