MATLAB绘制雷达图/蜘蛛图

news/2024/11/29 18:20:33/

雷达图/蜘蛛图

1 方法一

函数来源为MATLAB | 如何使用MATLAB绘制雷达图(蜘蛛图)

1.1 调用函数

名称说明备注
‘Type’用于指定每个轴的标签[‘Line’(默认)/‘Patch’]

1.2 案例

1.2.1 案例1:填充型

成图如下所示:
在这里插入图片描述
MATLAB实现代码如下:

clc
close all
clear
%% 导入数据
pathFigure= '.\Figures\' ;%% Example 1
X = randi([2,8],[4,7])+rand([4,7]);figure(1)
RC = radarChart(X ,'Type','Patch');
RC.RLim = [2,10];                         % 范围
RC.RTick = [2,8:1:10];                   % 刻度线
RC.PropName = {'Label1','Label2','Label3','Label4','Label5','Label6','Label7'};
RC.ClassName = {'A','B','C','D'};
RC = RC.draw(); 
RC.legend();                                 % 添加图例colorList=[78 101 155;138 140 191;184 168 207;231 188 198;253 207 158;239 164 132;182 118 108]./255;
for n=1:RC.ClassNumRC.setPatchN(n,'FaceColor',colorList(n,:),'EdgeColor',colorList(n,:))
endRC.setThetaTick('LineWidth',2,'Color',[.6,.6,.8]);          % theta轴颜色设置
RC.setRTick('LineWidth',1.5,'Color',[.8,.6,.6]);              % R轴颜色设置
RC.setPropLabel('FontSize',15,'FontName','Times New Roman','Color',[0,0,0])               % 属性标签
RC.setRLabel('FontSize',15,'FontName','Times New Roman','Color',[.8,0,0])                    % R刻度标签
% RC.setBkg('FaceColor',[0.8,0.8,0.8])                % 圆形背景颜色
% RC.setRLabel('Color','none')                           % 圆形背景颜色str= strcat(pathFigure, "Figure1", '.tiff');
print(gcf, '-dtiff', '-r600', str);

1.2.2 案例2:线型

成图如下所示:
在这里插入图片描述
MATLAB实现代码如下:

clc
close all
clear
%% 导入数据
pathFigure= '.\Figures\' ;%% Example 2
X = randi([2,8],[4,7])+rand([4,7]);figure(2)
RC=radarChart(X ,'Type','Line');
RC.PropName = {'Label1','Label2','Label3','Label4','Label5','Label6','Label7'};
RC.ClassName = {'A','B','C','D'};
RC=RC.draw();
RC.legend();colorList=[78 101 155;138 140 191;184 168 207;231 188 198;253 207 158;239 164 132;182 118 108]./255;
for n=1:RC.ClassNumRC.setPatchN(n,'Color',colorList(n,:),'MarkerFaceColor',colorList(n,:))
endRC.setThetaTick('LineWidth',2,'Color',[.6,.6,.8]);          % theta轴颜色设置
RC.setRTick('LineWidth',1.5,'Color',[.8,.6,.6]);              % R轴颜色设置
RC.setPropLabel('FontSize',15,'FontName','Times New Roman','Color',[0,0,0])               % 属性标签
RC.setRLabel('FontSize',15,'FontName','Times New Roman','Color',[.8,0,0])                    % R刻度标签
% RC.setBkg('FaceColor',[0.8,0.8,0.8])                % 圆形背景颜色
% RC.setRLabel('Color','none')                           % 圆形背景颜色str= strcat(pathFigure, "Figure2", '.tiff');
print(gcf, '-dtiff', '-r600', str);

2 方法二

函数来源为MATLAB帮助-spider_plot

2.1 调用函数

语法(Syntax):

spider_plot(P)spider_plot(P, Name, Value, ...)h = spider_plot(_)

输入变量:

  • P:用于绘制蜘蛛图的数据点。行是数据组,列是数据点。如果没有指定轴标签和轴限制,则自动生成。[向量|矩阵]

输出变量:

  • h:蜘蛛图的图柄。(图对象)

名称-值对参数(Name-Value Pair Arguments):

名称说明备注
AxesLabels用于指定每个轴的标签[自动生成(默认)/单元格的字符串/ ‘none’]
AxesInterval用于更改显示在网页之间的间隔数[3(默认值)/ integer]
AxesPrecision用于更改轴上显示的值的精度级别[1(默认)/ integer / vector]
AxesDisplay用于更改显示轴文本的轴数。'None’或’one’可用于简化规范化数据的图形外观[‘none’(默认)/ “没有”/“一”/“数据”/“data-percent”]

2.2 案例

2.2.1 案例1:填充型

成图如下所示:
在这里插入图片描述
MATLAB实现代码如下:

clc
close all
clear
%% 导入数据
pathFigure= '.\Figures\' ;
%% Example 1
% Initialize data points
D1 = [5 3 9 1 2];   
D2 = [5 8 7 2 9];
D3 = [8 2 1 4 6];
P = [D1; D2; D3];% Spider plot
figure(1)
h = spider_plot(P,...'AxesLabels', {'S1', 'S2', 'S3', 'S4', 'S5'},...'FillOption', {'on', 'on', 'off'},...'FillTransparency', [0.2, 0.1, 0.1],...'AxesLimits', [1, 2, 1, 1, 1; 10, 8, 9, 5, 10],...             % [min axes limits; max axes limits]'AxesPrecision', [0, 1, 1, 1, 1],...'LineStyle', {'--', '-', '--'},...'LineWidth', [1, 2, 3],...'AxesFont', 'Times New Roman',...'LabelFont', 'Times New Roman',...'AxesFontSize', 12,...'LabelFontSize', 12,...'AxesLabelsEdge', 'none');% Legend settings
hl = legend('D1', 'D2', 'D3', 'Location', 'northeast');
set(hl,'Box','off','FontSize',14,'Fontname', 'Times New Roman');str= strcat(pathFigure, "Figure1", '.tiff');
print(gcf, '-dtiff', '-r600', str);

2.2.2 案例2:线型

成图如下所示:
在这里插入图片描述
MATLAB实现代码如下:

clc
close all
clear
%% 导入数据
pathFigure= '.\Figures\' ;
%% Example 2
% Initialize data points
D1 = [5 3 9 1 2 2 9 3 1 9 8 7 2 3 6];
D2 = [5 8 7 2 9 7 6 4 8 9 2 1 8 2 4];
D3 = [8 2 1 4 6 1 8 4 2 3 7 5 6 1 6];
P = [D1; D2; D3];% Spider plot
spider_plot(P,...'AxesLimits', [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;...10 10 10 10 10 10 10 10 10 10 10 10 10 10 10],...'AxesInterval', 5,...'AxesDisplay', 'one',...'AxesPrecision', 0,...'AxesLabelsRotate', 'on',...'AxesLabelsOffset', 0.1,...'AxesRadial', 'off',...'AxesFont', 'Times New Roman',...'LabelFont', 'Times New Roman',...'AxesFontSize', 12,...'LabelFontSize', 12,...'AxesLabelsEdge', 'none');% Legend settings
hl = legend('D1', 'D2', 'D3', 'Location', 'northeast');
set(hl,'Box','off','FontSize',14,'Fontname', 'Times New Roman');str= strcat(pathFigure, "Figure2", '.tiff');
print(gcf, '-dtiff', '-r600', str);

2.2.3 案例3:绘制各月降水量

成图如下所示:
在这里插入图片描述
MATLAB绘图代码如下:

clc
close all
clear
%% 导入数据
pathFigure= '.\Figures\' ;%% 开始绘图
figureUnits = 'centimeters';
figureWidth = 30; 
figureHeight = 15;figure(1)
set(gcf, 'Units', figureUnits, 'Position', [0 0 figureWidth figureHeight]);pos1 = [0.05 0.1 0.3 0.8];
subplot('Position',pos1)
hold on;
box on;
spider_plot(PArea,...'AxesLabels', {'Jan.', 'Feb.', 'Mar.', 'Apr.', 'May','Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.'},...'AxesLimits', [ones(1,12)*30 ; ones(1,12)*48 ],...'AxesInterval', 5,...'AxesDisplay', 'one',...'AxesPrecision', 0,...'AxesLabelsRotate', 'off',...'AxesLabelsOffset', 0.1,...'AxesRadial', 'on',...'AxesFont', 'Times New Roman',...'LabelFont', 'Times New Roman',...'AxesFontSize', 12,...'LabelFontSize', 12,...'AxesLabelsEdge', 'none');
text( 'string', "\fontname{Times New Roman}(a)\fontname{宋体}各月降水量\fontname{Times New Roman}/mm", 'Units','normalized','position',[0.02,1.05],  'FontSize',14,'FontWeight','Bold');   pos2 = [0.43 0.15 0.56 0.7];
subplot('Position',pos2)
hold on;
box on;
h(1) = plot(PAreaYear,'-o','LineWidth',1.5,'color',[77,133,189]/255,'MarkerEdgeColor',[77,133,189]/255,'MarkerFaceColor',[77,133,189]/255,'Markersize',5);
h(2) = plot(1:nYear, PAreaYearfit ,'--','color',[40 120 181]/255,'LineWidth',1);
xlabel("\fontname{宋体}\fontsize{15}年份",'FontName','宋体','FontSize',12);                          % 后续调整坐标标题
ylabel("\fontname{宋体}\fontsize{15}降水\fontname{Times New Roman}\fontsize{15}/mm",'FontSize',12);                          % 后续调整坐标标题
text( 'string', "\fontname{Times New Roman}(b)\fontname{宋体}年降水", 'Units','normalized','position',[0.02,1.05],  'FontSize',14,'FontWeight','Bold');   
set(gca,'xlim',[0  nYear+1],'xtick',[1:5:nYear+1],'xticklabel', [yearStart :5:yearEnd] ,'FontSize',12,'FontName','Times New Roman','XMinorTick','on');
text( nYear/2-3.5,550 ,"y= "+roundn( P(1,1),-4) +"x+"+roundn( P(1,2),-4) , 'color','k', 'FontSize',12,'FontName','Times New Roman' );
text( nYear/2-3.5,535 ,"R^2= "+ roundn(R,-4) , 'color','k', 'FontSize',12,'FontName','Times New Roman' );
ax = gca;
ax.XAxis.MinorTickValues = 1:1:nYear+1;
set(gca,'ylim',[300 650],'ytick',[300:50:620],'yticklabel',[300:50:620],'FontSize',12,'FontName','Times New Roman');
hl = legend(h([1 2]), "年降水","线性(年降水)" );
set(hl,'Box','off','location','NorthEast','NumColumns',2,'FontSize',12,'FontName','宋体');    
set(gca,'Layer','top');str= strcat(pathFigure, "Figure1", '.tiff');
print(gcf, '-dtiff', '-r600', str);

参考

1.MATLAB | 如何使用MATLAB绘制雷达图(蜘蛛图)
2.MATLAB帮助-spider_plot


http://www.ppmy.cn/news/28344.html

相关文章

C++——异常

目录 C语言传统的处理错误的方式 C异常概念 异常的使用 异常的抛出和匹配原则 在函数调用链中异常栈展开匹配原则 自定义异常体系 异常的重新抛出 ​编辑 异常安全 异常规范 C标准库的异常体系 异常的优缺点 C语言传统的处理错误的方式 传统的错误处理机制: …

Random(一)高并发问题,ThreadLocalRandom源码解析

目录1.什么是伪随机数?2.Random2.1 使用示例2.2 什么种子重复,随机数会重复?2.3 nextInt() 源码分析2.4 线程安全的实现2.5 高并发问题3.ThreadLocalRandom3.1 使用示例3.2 current() 源码解析3.2.1 Thread中保存的变量:3.2.2 Thr…

敲出来的真理-mysql备份大全,备份命令,还原命令,定时备份

mysqldump命令全量备份数据全量标准语句格式mysqldump -h主机名 -P端口 -u用户名 -p密码 –database 数据库名 > 文件名.sql 1.备份全部数据库的数据和结构mysqldump -uroot -p123456 -A > /data/mysqlDump/mydb.sql2.备份全部数据库的结构(加 -d 参数&#x…

监控生产环境中的机器学习模型

简介 一旦您将机器学习模型部署到生产环境中,很快就会发现工作还没有结束。 在许多方面,旅程才刚刚开始。你怎么知道你的模型的行为是否符合你的预期?下周/月/年,当客户(或欺诈者)行为发生变化并且您的训练…

shell脚本入门

实习的时候第一个月的考核就是如何部署一个云资源,当时走的捷径(杠杠的搜索能力hhhh)找到了一个shell脚本一键部署,后来被leader问起来就如实说了,leader问有没有看懂shell脚本中的逻辑……(没有&#xff0…

【数据库】 第11章 并发控制

第11章 并发控制 事务 事务:(从微观角度,或者从DBMS角度)是数据库管理系统提供的控制数 据操作的一种手段,通过这一手段,应用程序员将一系列的数据库操作组合 在一起作为一个整体进行操作和控制,以便数据库管理系统能…

urho3d数据库

只有在启用以下两个构建选项之一时,数据库子系统才会构建到Urho3D库中:Urho3D_Database_ODBC和Urho3D-Database_SQLITE。当两个选项都启用时,URHO3D_DATABASE_ODBC优先。这些构建选项决定子系统将使用哪个数据库API。ODBC DB API更适用于本地…

(九)python网络爬虫(理论+实战)——爬虫实战:指定关键词的百度新闻爬取

系列文章目录 (1)python网络爬虫—快速入门(理论+实战)(一) (2)python网络爬虫—快速入门(理论+实战)(二) (3) python网络爬虫—快速入门(理论+实战)(三) (4)python网络爬虫—快速入门(理论+实战)(四) (5)