雷达图(Radar chart),又称为蜘蛛网图(Spider chart)或者极坐标图(Polar chart),是一种在极坐标系下展示多变量数据的图形表示方法,它通过连接同一轴上的各个数据点,并用折线将它们连接起来,形成一个封闭的多边形,雷达图可以清晰地展示各个变量之间的相对关系,适用于比较多个指标的情况。
在Python中,我们可以使用matplotlib
库来绘制雷达图,以下是详细的技术教学:
1、安装matplotlib
库
我们需要安装matplotlib
库,可以使用以下命令进行安装:
pip install matplotlib
2、导入所需库
接下来,我们需要导入matplotlib
库中的相关模块:
import numpy as np import matplotlib.pyplot as plt
3、准备数据
为了绘制雷达图,我们需要准备一组二维数据,每一行代表一个数据点,每一列代表一个变量,我们可以准备如下数据:
data = np.array([ [2, 4, 3, 5, 7], [3, 6, 2, 8, 9], [4, 8, 1, 7, 5] ])
4、计算角度和半径
为了在极坐标系下绘制雷达图,我们需要计算每个数据点的角度和半径,这里我们使用numpy
库的arange
和linspace
函数来生成角度和半径:
n_vars = data.shape[1] # 变量数量 angles = np.arange(0, 2 * np.pi, 2 * np.pi / n_vars) # 角度数组 radius = np.linspace(0, data.max(axis=1), n_vars) # 半径数组
5、绘制雷达图
现在,我们可以使用matplotlib
库的polar
函数创建一个极坐标绘图对象,并使用plot
函数绘制雷达图:
fig, ax = plt.subplots(figsize=(6, 6)) ax.set_theta_direction(1) # 设置角度方向为逆时针 ax.set_thetagrids(angles * 180 / np.pi, labels=np.arange(1, n_vars + 1)) # 设置角度刻度和标签 ax.set_rlabel_position(0) # 设置半径标签位置在内部 ax.set_yticklabels([]) # 隐藏y轴刻度标签 plt.fill(angles, radius, color='orange', alpha=0.25) # 填充雷达图区域 for i in range(data.shape[0]): ax.plot(angles, radius, data=data[i], label=f'Data {i + 1}') # 绘制每个数据点的折线 plt.legend() # 显示图例 plt.show() # 显示图形
以上代码将绘制出一个雷达图,展示了三个数据点的五个变量之间的关系,通过调整数据、角度和半径等参数,我们可以绘制出不同形状和规模的雷达图。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/468914.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复