当前位置: 首页 > 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 代表红色。

相关文章:

  • HarmonyOS实战:高德地图定位功能完整流程详解
  • Shell三剑客之awk
  • DeepSeek智能对话助手项目
  • 行列式的线性性质(仅限于单一行的加法拆分)
  • Python 操作MySQL数据库
  • 每日leetcode(昨天赶飞机没做,今天补)
  • Java序列化与反序列化详细介绍
  • QT写槽函数的注意事项
  • js实现音频的录制
  • LangGraph-agent-天气助手
  • 地下综合管廊 3D 可视化平台
  • 微信小程序数据接收
  • uniapp-商城-67-shop(3-品牌信息显示,弹窗显示完整品牌信息,弹窗拨打电话、地图定位)
  • 安卓11 不带谷歌包默认桌面布局
  • HarmonyOS赋能套件介绍
  • 聊一聊手动测试与探索性测试的区别
  • mysql统计数据库大小
  • 从Embedding到多模态检索:AI知识库构建的进阶路线图
  • 2021-10-28 C++判断完全平方数
  • 学习STC51单片机14(芯片为STC89C52RC)
  • 关于企业网站建设的市场比质比价调查报告/苏州百度代理公司
  • 青岛专业网站开发公司/三只松鼠的软文范例
  • 响应式网站难做/网络搭建教程
  • 做加盟正规网站/seo网站优化方法
  • wordpress 样式丢失/网站seo推广员招聘
  • king 主题WordPress/seo是什么意思