python绘制雷达图(详细)

本文介绍了雷达图的概念,包括其在网络图、蜘蛛图等不同形式的表示。通过Python的matplotlib库,详细阐述了如何定义标准化函数及绘制圆形和多边形雷达图的步骤,为读者提供了全面的雷达图绘制指南。
摘要由CSDN通过智能技术生成

雷达图介绍

雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的图形方法。轴的相对位置和角度通常是无信息的。 雷达图也称为网络图,蜘蛛图,星图,蜘蛛网图,不规则多边形,极坐标图或Kiviat图。它相当于平行坐标图,轴径向排列。【搜狗百科】

雷达图通常用于综合分析多个指标,具有完整,清晰和直观的优点。

在这里插入图片描述
下面用实现用python制作雷达图的方法和过程:

雷达图制作

定义标准化函数

from numpy import array
from sklearn import preprocessing
import matplotlib.pyplot as plt
def normalization(data,method,feature_range=(0,1)):
    if(method=='z_score'):
        train_data_scale = data.apply(lambda x: (x - np.mean(x)) / np.std(x) )
    
    if(method=='min_max'):
        train_data_scale = data.apply(lambda x: (x - np.min(x)) / (np.max(x) - np.min(x)))
    return train_data_scale

绘制雷达图-圆形

def radar_map(data,sel_col,scale_method,label_num,close_label):
    x_scale = normalization(data[sel_col],method = scale_method)
    r1 = pd.Series(data.label).value_counts()
    r2 = x_scale.groupby(data.label).mean()  #指标统计方法:均值
    r = pd.concat([r1,r2], axis = 1)     #得到标签各类别的规模
    r
好的,下面是Python绘制雷达图详细代码及注释: ```python import matplotlib.pyplot as plt import numpy as np # 设置中文显示 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False # 数据 categories = ['攻击', '防御', '技能', '生命', '速度'] data = [90, 75, 80, 85, 70] # 五项属性得分 # 绘图 fig = plt.figure(figsize=(6, 6)) # 创建布 ax = fig.add_subplot(111, polar=True) # 设置为极坐标系 angles = np.linspace(0, 2 * np.pi, len(categories), endpoint=False) # 计算每个角度 data = np.concatenate((data, [data[0]])) # 闭合数据 angles = np.concatenate((angles, [angles[0]])) # 闭合角度 ax.plot(angles, data, 'o-', linewidth=2) # 绘制雷达图 ax.fill(angles, data, alpha=0.25) # 填充雷达图 ax.set_thetagrids(angles * 180 / np.pi, labels=categories) # 设置极坐标系的角度刻度 ax.set_ylim(0, 100) # 设置极坐标系的半径范围 plt.title('属性雷达图') # 设置标题 plt.show() # 显示图形 ``` 注释说明: 1. 导入必要的库:`matplotlib.pyplot` 和 `numpy`。 2. 设置中文显示:使用 `plt.rcParams` 来设置字体。 3. 定义数据:`categories` 表示五个属性名称,`data` 表示每个属性的得分。 4. 绘图:创建一个大小为 6x6 的布,添加一个极坐标系,并设置为 `ax` 变量。使用 `np.linspace` 计算每个角度。为了闭合数据和角度,使用 `np.concatenate` 在数据和角度的末尾添加一个角度值和数据值。使用 `ax.plot` 绘制雷达图,并使用 `ax.fill` 填充雷达图。使用 `ax.set_thetagrids` 设置极坐标系的角度刻度,使用 `ax.set_ylim` 设置极坐标系的半径范围。最后,使用 `plt.title` 设置标题。 5. 显示图形:使用 `plt.show` 显示图形。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

data大柳

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

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

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

打赏作者

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

抵扣说明:

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

余额充值