当前位置: 首页 > news >正文

【Matlab】雷达图/蛛网图

文章目录

  • 一、简介
  • 二、安装
  • 三、示例
  • 四、所有参数说明

一、简介

雷达图(Radar Chart)又称蛛网图(Spider Chart)是一种常见的多维数据可视化手段,能够直观地对比多个指标并揭示其整体分布特征。

雷达图以中心点为原点,依次向外延伸出 n n n 条放射状轴,每条轴对应一个维度指标。若有数据点 x 1 , x 2 , … , x n {x_1, x_2, \dots, x_n} x1,x2,,xn,则在第 i i i 条轴上,按量值 x i x_i xi 的大小标定距离,将各点连线后即得到一个封闭的多边形——类似雷达扫描回波或昆虫蛛网的形态。

  • 轴的均匀分布:第 i i i 条轴相对于水平线的角度可设为
    θ i = 2 π ( i − 1 ) n , i = 1 , 2 , … , n . \theta_i = \frac{2\pi (i-1)}{n},\quad i=1,2,\dots,n. θi=n2π(i1),i=1,2,,n.
  • 数据标度:各轴通常需先将原始值归一化为 [ 0 , 1 ] [0,1] [0,1] 区间(这个也不是一定的,不同的轴也可以使用不同的量纲,不过需要标注一下),记归一化后数据为 x ~ i \tilde x_i x~i,再映射到同一半径范围。

二、安装

这个用极坐标就可以画,但是要得到一个功能强大、样式丰富的图,比较麻烦,直接用其他人开发的工具箱吧。

去附加功能管理器搜索radar(清空过滤条件),即可看到这个:不是Radar Toolbox,那个是真的雷达工具箱。
在这里插入图片描述
也可以去File Exchange下载:不过截至现在,mathworks的这个网页还没修复,下不了(都一个多星期了还没搞好😅)。

这个不是App,只是个工具箱,即几份代码文件,下载后默认保存在你的C盘某个位置,默认会添加到路径。
在这里插入图片描述

在这里插入图片描述
这个文件夹你可以直接复制到别的地方,或者分享给他人。

三、示例

生成一个示例数据:5行,10列,即5个样本,每个10个指标(比如5个城市的10个指标)。

% 生成 5×10 的随机示例数据(0–10 之间)
rng(1);  
data_matrix = rand(5,10) * 10;

画图:

spider_plot(data_matrix);

在这里插入图片描述

这就是默认的绘图风格。

图中所有的内容都可以自定义:数据标注、标签、数据线型、射线、网状线(web)等内容都可以设置。

下面做一个复杂一点的示例:完整参数见文末。
在这里插入图片描述

close all
clear
clc%% —— 示例数据生成 —— 
% 生成 5×10 的随机示例数据(0–10 之间)
rng(1);  
data_matrix = rand(5,10) * 10;%% —— 雷达图绘制 —— % 英文标签
labels = {'V1','V2','V3','V4','V5','V6','V7','V8','V9','V10'};% 配色:五种清晰可区分的颜色
colors = ["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd"];rgb_color = zeros(length(colors), 3);
for i = 1:length(colors)rgb_color(i,:) = sscanf(colors(i), '#%2x%2x%2x', [1 3]) / 255;
endline_styles = {'-','--',':','-.','-'};
markers     = {'o','s','^','d','v'};
legend_str  = {'A','B','C','D','E'}';% 新建 figure 并设置字体、大小
f = figure('Color','white','Units','inches','Position',[3 3 8 7]);
set(f, ...'DefaultAxesFontName','Times New Roman', ...'DefaultTextFontName','Times New Roman', ...'DefaultAxesFontSize',12, ...'DefaultTextFontSize',12);% 调用 spider_plot
h_spider = spider_plot(data_matrix, ...'AxesLabels',        labels, ...'AxesDisplay',       'all', ...'FillOption',        'on', ...'FillTransparency',  0.25, ...'Color',             rgb_color, ...'LineStyle',         line_styles, ...'Marker',            markers, ...'MarkerSize',        10, ...'LineWidth',         1.1, ...'AxesRadial',        'on', ...'AxesLabelsRotate',  'off', ...'AxesInterval',      2, ...'AxesPrecision',     2, ...'AxesLabelsOffset',  0.15, ...'AxesColor',         'b', ...'AxesFont',          'Times New Roman', ...'LabelFont',         'simsun', ...'BackgroundColor',   'w', ...'AxesRadialLineStyle',':', ...'AxesRadialLineWidth',1, ...'AxesLabelsEdge',    '#8B8386', ...'AxesWebLineStyle',  '--', ...'AxesFontColor',     'k');% 添加图例
legend(legend_str, ...'Location','south', ...'Orientation','horizontal', ...'FontSize',12, ...'FontName','Times New Roman', ...'Position',[0.3750 0.1106 0.2865 0.0214]);% 保存高分辨率图片
% exportgraphics(gcf, 'radar_plot.png', 'Resolution', 600);

四、所有参数说明

Argument NameDescriptionDefault ValuePossible Values
AxesLabels指定每个轴的标签。auto-generatedauto-generated , cell array of strings, 'none'
AxesInterval更改 web 之间显示的间隔数。3integer
AxesPrecision更改轴上显示值的精度级别。1integer, vector
AxesDisplay更改显示轴文本的轴数。'all''all', 'none', 'one', 'data', 'data-percent'
AxesLimits手动设置轴限制。auto-scaledmatrix (2 x size(P, 2)), auto-scaled
FillOption切换填充颜色选项。'off''off', 'on', cell array of character vectors
FillTransparency设置填充颜色透明度。0.1scalar in range (0, 1), vector
Color指定线条颜色,以 RGB 三元组形式指定。MATLAB colorsRGB triplet
LineStyle更改绘图的线条样式。'-''-', '--', ':', '-.', 'none', cell array of character vectors
LineWidth更改线宽,其中 1 point 为 1/72 英寸。0.5positive value, vector
LineTransparency设置线条颜色透明度。1scalar in range (0, 1), vector
Marker更改绘图的标记符号。'o''o', '*', 's', 'd', '+', '.', 'x', '^', 'v', 'h', 'none', cell array of character vectors
MarkerSize更改标记大小,其中 1 point 为 1/72 英寸。36positive value, vector
MarkerTransparency设置标记颜色透明度。1scalar in range (0, 1), vector
AxesFont更改轴上显示的值的字体类型。'Helvetica'supported font name
LabelFont更改标签的字体类型。'Helvetica'supported font name
AxesFontSize更改轴上显示的值的字体大小。10scalar value greater than zero
AxesFontColor更改轴上显示的值的字体颜色。'black'RGB triplet
LabelFontSize更改标签的字体大小。10scalar value greater than zero
Direction更改绘制的数据和轴标签的旋转方向。'clockwise''clockwise', 'counterclockwise'
AxesDirection更改轴的方向。'normal''normal', 'reverse', cell array of character vectors
AxesLabelsOffset调整轴标签的位置偏移。0.2positive value
AxesDataOffsetAxesDisplay 设置为 'data' 时,调整数据标签的位置偏移。0.1positive value
AxesScaling更改轴的缩放。'linear''linear', 'log', cell array of character vectors
AxesColor更改 spider 轴的颜色。'grey'RGB triplet, hexadecimal color code
AxesLabelsEdge更改轴标签的边缘颜色。'black'RGB triplet, hexadecimal color code, 'none'
AxesOffset更改轴与原点的偏移。1any integer less than the axes interval
AxesZoom更改轴的缩放。0.7scalar in range (0, 1)
AxesHorzAlign更改轴刻度标签的水平对齐方式。'center''center', 'left', 'right', 'quadrant'
AxesVertAlign更改轴刻度标签的垂直对齐方式。'middle''middle', 'top', 'cap', 'bottom', 'baseline', 'quadrant'
PlotVisible更改绘制的线条和标记的可见性。'on''on', 'off'
AxesTickLabels更改轴刻度标签。'data'cell array of character vectors
AxesInterpreter更改轴标签和轴刻度标签的文本解释器。'tex''tex', 'latex', 'none', cell array of character vectors
BackgroundColor更改背景颜色。'white'RGB triplet, hexadecimal color code, 'r', 'g', 'b', …
MinorGrid切换次要网格。'off''off', 'on'
MinorGridInterval更改主要网格线之间的次要网格线数量。2integer value greater than zero
AxesZero在值零处添加参考轴。'off''off', 'on'
AxesZeroColor更改零参考轴的颜色。'black'RGB triplet, hexadecimal color code, 'r', 'g', 'b', …
AxesZeroWidth更改零参考轴的线宽。2positive value
AxesRadial切换径向轴。'on''on', 'off'
AxesWeb切换 web 轴。'on''on', 'off'
AxesShaded切换轴周围的阴影区域。'off''off', 'on'
AxesShadedLimits设置阴影区域的限制。AxesLimitscell array (matrix of 2 x size(P, 2))
AxesShadedColor更改阴影区域的颜色。'green'RGB triplet, hexadecimal color code, 'r', 'g', 'b', cell array
AxesShadedTransparency设置阴影区域透明度。0.2vector in range (0, 1)
AxesLabelsRotate旋转轴标签以与轴对齐。'off''off', 'on'
AxesHandle指定要在其中绘图的轴。new axesAxes object
ErrorBars使用 +/- 标准差端点切换误差条模式。'off''off', 'on'
AxesWebType设置绘制的 web 类型。'web''web', 'circular'
AxesTickFormat格式化轴刻度文本。 覆盖 AxesPrecision 值。'%.2f'cell array of character vectors
FillCData当填充选项设置为 'interp' 时,设置填充颜色。emptyvector
ErrorPositive'ErrorBars' 设置为 'on' 时,设置正方向的误差条长度。emptyvector
ErrorNegative'ErrorBars' 设置为 'on' 时,设置负方向的误差条长度。emptyvector
AxesStart设置轴的初始起点。 指定一个介于 [0, 2pi] 之间的值。pi/2scalar
AxesRadialLineWidth设置径向轴的线宽。1.5scalar
AxesRadialLineStyle设置径向轴的线条样式。'-''-', '--', ':', '-.', 'none', cell array of character vectors
AxesWebLineWidth设置轴 web 的线宽。1scalar
AxesWebLineStyle设置轴 web 的线条样式。'-''-', '--', ':', '-.', 'none', cell array of character vectors
LegendLabels添加图例标签。 (仅 spider_plot_class 属性)N/A (类属性)cell array of character vectors
LegendHandle自定义图例设置。 (仅 spider_plot_class 属性)N/A (类属性)legend handle object
TiledLayoutHandle自定义分块布局设置。 (仅 spider_plot_class 属性)N/A (类属性)tiled chart layout handle object
TiledLegendHandle自定义分块图例设置。 (仅 spider_plot_class 属性)N/A (类属性)legend handle object of tiled layout
NextTileIter使用连续分块图进行迭代。 (仅 spider_plot_class 属性)1N/A

Notes:

  • “N/A” 在 Default Value 列中表示该属性仅适用于 spider_plot_class,而不是作为 Name-Value Pair 参数直接传递给函数。
  • RGB triplet 指的是 [R, G, B] 的一个数组,其中 R, G, B 分别代表红色,绿色,蓝色的强度,取值范围为 [0, 1]。
  • hexadecimal color code 指的是以 # 开头的十六进制颜色码,例如 #FF0000 代表红色。
http://www.xdnf.cn/news/626347.html

相关文章:

  • [Linux] 再谈 Linux Socket 编程技术(代码示例)
  • redis的主从复制
  • JavaSE常用API之Runtime类:掌控JVM运行时环境
  • 分布式系统设计实战 - 服务注册中心最佳选型
  • char类型既能表达字符又能表达整数
  • IDEA中创建SpringBoot项目没有Java8
  • 初级消防设施操作员证有用吗?
  • 香橙派3B学习笔记2:Vscode远程SSH登录香橙派_权限问题连接失败解决
  • Neural ODE(神经常微分方程网络)深度解析
  • C# 高性能写入txt大量数据
  • Java IO流学习指南:从小白到入门
  • PS2025 v26.7 Photoshop2025+AI生图扩充版,支持AI画图
  • 【Redis】1-高效的数据结构P3-压缩列表与对象
  • 函数式编程思想详解
  • MATLAB 2023b 配电柜温度报警系统仿真
  • 41-牧场管理系统
  • 【RAG文档切割】从基础拆分到语义分块实战指南
  • 在STM32上配置图像处理库
  • Java 并发编程高级技巧:CyclicBarrier、CountDownLatch 和 Semaphore 的高级应用
  • Spring AI 使用教程
  • Non-blocking File Ninja: 异步文件忍者
  • 人形机器人通过观看视频学习人类动作的技术可行性与前景展望
  • 《AVL树完全解析:平衡之道与C++实现》
  • 如何保证 Kafka 数据实时同步到 Elasticsearch?
  • NHANES指标推荐:PHDI
  • RT Thread Nano V4.1.1 rtconfig.h 注释 Configuration Wizard 格式
  • 【TCP/IP协议族详解】
  • Docker安装MySQL集群(主从复制)
  • 关于gt的gt_data_valid_in信号
  • LeetCode-贪心-买卖股票的最佳时机