当前位置:首页>python>Python| 雷达图(各轴刻度范围不同)

Python| 雷达图(各轴刻度范围不同)

  • 2026-09-02 19:15:16
Python| 雷达图(各轴刻度范围不同)

未经授权不得转载或抄袭。

转载合作请后台联系授权,侵权必究。

    

指标量级差太大画在一张图失真?

待对比的指标太多,单位不一,数值跨度大,直接绘图可能会导致失真 —— 大数占满整张图,小数几乎看不见。

试试各轴刻度范围不同的多维度雷达图

注:本文所用数据均为模拟数据,不具有实际意义。

01

 导入库和准备数据文件

导入库

import sysfrom typing import List, Tuple, Optionalimport numpy as npimport matplotlib.pyplot as pltimport matplotlibimport pandas as pd

准备数据文件

创建csv文件,格式如下:

AT
PH
HSDD
M1
3.8
52
0.7
M2
2.1
5
1.1
M3
8.5
68
1.6
M4
5.4
67
2.7

02

配置参数

设置Config类

以下是该图的参数配置:

class Config:    """雷达图配置参数"""    # 数据与基本设置    USE_MANUAL_RANGE: bool = True          # 是否使用手动范围(False 则自动扩展 10%)    ROTATE_LABELS: bool = False           # 是否径向旋转指标标签    CSV_FILE: str = 'data.csv'             # CSV 文件路径(第一列方法名,其余为指标)    FIG_SIZE: Tuple[int, int] = (5, 6)     # 图形大小(英寸)    DPI: int = 600                         # 保存图片分辨率    LABEL_RADIUS: float = 1.15             # 指标标签的径向距离(>1 置于网格外)    TITLE: str = 'Environmental Indicators'   # 图表标题    OUTPUT_FILE: str = 'radar_chart.png'  # 输出文件名    SCALE_DECIMALS_PER_AXIS: List[int] = [0, 0, 0, 1, 0, 0]  # 刻度小数位数(列表长度必须与指标数量一致)    N_CIRCLES: int = 2                    # 同心圆圈数(网格线数量)# 手动范围(顺序与 CSV 中的指标列一致)MANUAL_RANGES: List[List[float]] = [    [0, 10],    [0, 80],    [0, 4],    [0, 0.4],    [0, 40],    [0, 10]]# 绘图颜色COLORS: List[str] = ['#619096', '#DAAB5B', '#D07258', '#45465B']

以下是该图修改的参数设置(其他与上一张图一样):

ROTATE_LABELS: bool = True           # 是否旋转指标标签CSV_FILE: str = 'data2.csv'             # CSV 文件路径(第一列方法名,其余为指标)OUTPUT_FILE: str = 'radar_chart2.png'  # 输出文件名SCALE_DECIMALS_PER_AXIS: List[int] = [0, 0, 0, 1, 0, 0,0,0]  # 刻度小数位数(列表长度必须与指标数量一致)N_CIRCLES: int = 3                    # 同心圆圈数(网格线数量)# 手动范围(顺序与 CSV 中的指标列一致)MANUAL_RANGES: List[List[float]] = [    [0, 45],    [0, 600],    [0, 15],    [0, 0.9],    [0, 60],    [0, 45],    [0, 9],    [0, 300]]

03

参数小贴士

  • 标签重叠

    如果指标名称较长(出现指标名称与刻度值标签重叠时),可将LABEL_RADIUS调大(如1.2~1.5),让标签外移;或将ROTATE_LABELS设为True,让文字旋转。

  • 网格线数量

    N_CIRCLES控制同心圆数量。对于数据分布较均匀的场景,可增加到4或5,让刻度更细致。

  • 颜色自定义

    COLORS列表支持任何matplotlib颜色格式(十六进制、RGB、颜色名)。若方法数超过颜色数,会自动循环使用。

  • 输出尺寸

    FIG_SIZE=(5,6) 控制宽度和高度(英寸)。若需横向宽图,可改为(8,6)。

  • 小数点位数

    列表长度必须与指标数量一致,且小数位数不能为负数。若某个指标原始数据范围很小(如0~0.5),建议保留2~3位小数,避免所有刻度显示为“0”。

“今日分享至此✨”

如有错误或不足之处,欢迎随时在评论区指出,感谢!

完整代码获取方式,见评论区。

往期推荐

Origin| 三维柱状图(3D并列条状图)

求点赞

求分享

求推荐

最新文章

随机文章