【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.pswp.cn/bicheng/82254.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3实现轮播表(表格滚动)

在这之前,写过一篇Vue2实现该效果的博文:vue-seamless-scroll(一个简单的基于vue.js的无缝滚动) 有兴趣也可以去看下,这篇是用vue3实现,其实很简单,目的是方便后面用到直接复制既可以了。 安装: <

安卓开发用到的设计模式(1)创建型模式

安卓开发用到的设计模式&#xff08;1&#xff09;创建型模式 文章目录 安卓开发用到的设计模式&#xff08;1&#xff09;创建型模式1. 单例模式&#xff08;Singleton Pattern&#xff09;2. 工厂模式&#xff08;Factory Pattern&#xff09;3. 抽象工厂模式&#xff08;Abs…

后端开发概念

1. 后端开发概念解析 1.1. 什么是服务器&#xff0c;后端服务 1.1.1. 服务器 服务器是一种提供服务的计算机系统&#xff0c;它可以接收、处理和响应来自其他计算机系统&#xff08;客户端&#xff09;的请求。服务器主要用于存储、处理和传输数据&#xff0c;以便客户端可以…

Spring AI 源码解析:Tool Calling链路调用流程及示例

Tool工具允许模型与一组API或工具进行交互&#xff0c;增强模型功能&#xff0c;主要用于&#xff1a; 信息检索&#xff1a;从外部数据源检索信息&#xff0c;如数据库、Web服务、文件系统或Web搜索引擎等 采取行动&#xff1a;可用于在软件系统中执行特定操作&#xff0c;如…

Spyglass:跨时钟域同步(长延迟信号)

相关阅读 Spyglasshttps://blog.csdn.net/weixin_45791458/category_12828934.html?spm1001.2014.3001.5482 简介 长延迟信号方案用于控制或数据信号跨时钟域同步&#xff0c;该方案将使用quasi_static约束的跨时钟域信号视为已同步&#xff0c;如图1所示。 // test.sgdc q…

Linux云计算训练营笔记day13【CentOS 7 find、vim、vimdiff、ping、wget、curl、RPM、YUM】

Linux云计算训练营笔记day13[CentOS 7 find、vim、vimdiff、ping、wget、curl、RPM、YUM]] 目录 Linux云计算训练营笔记day13[CentOS 7 find、vim、vimdiff、ping、wget、curl、RPM、YUM]]1.find练习2.vim高级使用2.1 命令模式:2.2 插入模式:2.3 末行模式: 3. vimdiff4. ping5.…

网络流量分析工具ntopng的安装与基本使用

网络流量分析工具ntopng的安装与基本使用 一、ntopng基本介绍1.1 ntopng简介1.2 主要特点1.3 使用场景 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、安装ntopng工具3.1 官网地址3.2 配置软件源3.3 添加软件源3.4 安装ntopng 四、ntopng的基本配置4.1 修改配置文件4.…

数据的获取与读取篇---常见的数据格式JSON

文件格式 假如你有一份想分析的数据文件,获得文件后下一步就是用代码读取它。不同的文件格式有不同的读取方法。所以读取前了解文件格式也很重要。你可能见过非常多的文件格式,例如TXT、MP3、PDF、JPEG等等。 一般可以通过文件的后缀来分辨文件的格式,例如TXT格式,一般保存…

人工智能发展

探秘人工智能领域的热门编程语言与关键知识 在当今科技飞速发展的时代&#xff0c;人工智能已渗透到生活的各个角落&#xff0c;从智能语音助手到精准的推荐系统&#xff0c;从自动驾驶汽车到医疗影像诊断&#xff0c;人工智能正以前所未有的速度改变着世界。而在这背后&#x…

超全GPT-4o 风格提示词案例,持续更新中,附使用方式

本文汇集了各类4o风格提示词的精选案例&#xff0c;从基础指令到复杂任务&#xff0c;从创意写作到专业领域&#xff0c;为您提供全方位的参考和灵感。我们将持续更新这份案例集&#xff0c;确保您始终能够获取最新、最有效的提示词技巧。 让我们一起探索如何通过精心设计的提…

Vue3响应式数据: 深入分析Ref与Reactive

Vue3响应式数据: 深入分析Ref与Reactive 介绍 作为一个流行的前端框架&#xff0c;其响应式数据系统是其核心特性之一。在Vue3中&#xff0c;我们可以使用Ref和Reactive两种方式来创建响应式数据。本文将深入分析Ref与Reactive&#xff0c;帮助读者更好地理解Vue3的响应式数据系…

云计算,大数据,人工智能

1. 云计算&#xff1a;弹性资源与分布式计算 案例&#xff1a;基于AWS EC2的动态资源扩展 场景&#xff1a;电商网站在“双十一”期间流量激增&#xff0c;需要临时扩容服务器资源。 代码&#xff1a;使用AWS Boto3库动态启动EC2实例 import boto3# 创建EC2客户端 ec2 boto…

Linux(7)——进程(概念篇)

一、基本概念 书本上的概念&#xff1a;程序的一个执行实例&#xff0c;正在执行的程序等 基于内核的观点&#xff1a;担当分配系统资源(CPU时间&#xff0c;内存)的实体。 我们知道&#xff0c;我们在写代码的时候&#xff0c;你的代码进行编译链接后生成可执行文件&#xff…

【Harmony】【鸿蒙】List列表View如何刷新内部的自定义View的某一个控件

创建自定义View Component export struct TestView{State leftIcon?:Resource $r(app.media.leftIcon)State leftText?:Resource | string $r(app.string.leftText)State rightText?:Resource | string $r(app.string.rightText)State rightIcon?:Resource $r(app.med…

Docker安装MySQL集群(主从复制)

为确保生产环境中的数据安全与可靠性&#xff0c;数据库普遍采用主从集群架构&#xff08;一主一从&#xff09;进行部署。本文将系统阐述如何利用Docker镜像实现数据库集群的容器化部署&#xff0c;并完整记录各配置环节的具体实现步骤。 一、主服务实例创建&#xff08;可以…

开篇:MCP理论理解和学习

文章目录 零 参考资料一 MCP概念二 MCP核心架构和功能三 MCP VS OP(Others Protocol)3.1 函数调用3.2 模型上下文协议3.3 MCP VS Others Protocol3.3.1 MCP与Function Calling的对比优势3.3.2 MCP与AI Agents的协同关系3.3.3 MCP与A2A协议的互补性3.3.4 MCP与传统API的技术革新…

产品经理面经(三)

目录 为什么想做产品经理&#xff1f;为什么适合做产品经理&#xff1f; 解析 我的回答&#xff1a; 你觉得产品经理应该具备什么品质 解析 我的回答 想做什么方向的产品经理呢&你知道产品经理分为哪几种吗&#xff1f; 解题思路 为什么想做产品经理&#xff1f;为…

Vue3 Composition API: 企业级应用最佳实践方案

在当前前端技术迅速发展的环境下&#xff0c;Vue3 Composition API 成为了关注的焦点。它为开发人员提供了更加灵活和可维护的代码结构&#xff0c;适用于构建大规模企业级应用。在本文中&#xff0c;我们将探讨Vue3 Composition API的最佳实践方案&#xff0c;帮助开发人员更好…

CentOS大师班:企业级架构与云端融合实战

一、高级存储管理与灾难恢复 1. LVM动态卷扩展实战 pvcreate /dev/sdb1 # 创建物理卷 vgcreate vg_data /dev/sdb1 # 创建卷组 lvcreate -L 100G -n lv_www vg_data # 创建逻辑卷 mkfs.xfs /dev/vg_data/lv_www # 格式化 mount /dev/vg_da…

使用VGG-16模型来对海贼王中的角色进行图像分类

动漫角色识别是计算机视觉的典型应用场景&#xff0c;可用于周边商品分类、动画制作辅助等。 这个案例是一个经典的深度学习应用&#xff0c;用于图像分类任务&#xff0c;它使用了一个自定义的VGG-16模型来对《海贼王》中的七个角色进行分类&#xff0c;演示如何将经典CNN模型…