当前位置:首页 > 行业动态 > 正文

Python雷达图详解

雷达图(Radar Chart)是一种用于显示多变量数据的图形表示方法,它将多个变量的数据以不同的角度和半径绘制在一个圆形的图表上,通过连接各个数据点形成多边形,从而直观地展示各个变量之间的相对关系,雷达图常用于评估和比较多个指标的表现,如企业绩效、员工评价等。

在Python中,我们可以使用matplotlib库来绘制雷达图,以下是一个简单的雷达图绘制示例:

1、我们需要安装matplotlib库,在命令行中输入以下命令进行安装:

pip install matplotlib

2、接下来,我们编写一个绘制雷达图的函数:

import numpy as np
import matplotlib.pyplot as plt
def radar_chart(data, labels):
    # 计算角度和半径
    angles = np.linspace(0, 2 * np.pi, len(labels), endpoint=False).tolist()
    data = np.concatenate((data, [data[0]]))  # 闭合数据,使多边形闭合
    angles += angles[:1]  # 闭合角度,使多边形闭合
    radius = np.sqrt(np.dot(data, data) / len(data))
    angles = angles[:1]  # 去掉最后一个闭合角度
    # 绘制雷达图
    fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True))
    ax.fill(angles, data, color='red', alpha=0.25)
    ax.set_yticklabels([])  # 隐藏y轴刻度
    ax.set_xticks(angles[:1])  # 隐藏最后一个闭合角度的x轴刻度
    ax.set_xticklabels(labels)
    plt.show()

3、使用上述函数绘制一个简单的雷达图:

data = [5, 7, 3, 8, 4]
labels = ['A', 'B', 'C', 'D', 'E']
radar_chart(data, labels)

以上代码将绘制一个包含5个指标(A、B、C、D、E)的雷达图,每个指标的值分别为5、7、3、8、4,雷达图将以红色填充多边形区域。

4、如果我们希望调整雷达图的颜色、透明度等样式,可以在radar_chart函数中添加相应的参数和设置:

def radar_chart(data, labels, color='red', alpha=0.25):
    # ...省略其他代码...
    ax.fill(angles, data, color=color, alpha=alpha)
    # ...省略其他代码...

5、我们还可以使用plt.title()、plt.xlabel()、plt.ylabel()等函数为雷达图添加标题、坐标轴标签等:

def radar_chart(data, labels, title='', xlabel='', ylabel=''):
    # ...省略其他代码...
    ax.set_title(title)
    ax.set_xlabel(xlabel)
    ax.set_ylabel(ylabel)
    plt.show()

6、我们可以使用numpy库生成一些随机数据,并使用我们的radar_chart函数绘制一个更复杂的雷达图:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
def radar_chart(data, labels, title='', xlabel='', ylabel=''):
    # ...省略其他代码...
    pass
生成随机数据
np.random.seed(0)
data = np.random.randint(1, 10, size=(5, 5)).tolist()[0] + [np.mean([np.sum(row) for row in data])]  # 闭合数据,使多边形闭合
labels = ['A', 'B', 'C', 'D', 'E'] + ['Mean']  # 添加均值标签
title = 'Example Radar Chart'  # 添加标题
xlabel = ''  # 删除x轴标签
ylabel = ''  # 删除y轴标签
radar_chart(data, labels, title, xlabel, ylabel)

以上代码将生成一个包含5个指标(A、B、C、D、E)和一个均值指标的雷达图,每个指标的值均为1到9的随机整数,雷达图将以红色填充多边形区域,并添加标题“Example Radar Chart”。

0