雷达图(Radar Chart),又称星图、蜘蛛图、蜘蛛网图、网络图、Kiviat图等,是一种以从同一点开始的轴上表示的三个以上变量的二维图表的形式,来显示多变量数据的图形方法。
雷达图可以直观地对多维数据集目标对象的性能、优势及关键特征进行展示,因此在一些顶级期刊中也能看到它的身影,比如《Nature》:
由于Matlab中未收录雷达图的绘制函数,因此需要大家自行设法解决。
本文通过改进Moses的spider_plot工具(MATLAB Central,2022),制作了spider_plot_k雷达图绘制工具,从而进行雷达图的绘制,先来看一下成品效果:
特别提示:本期内容『数据+代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以关注同名公号 阿昆的科研日常,后台回复关键词【绘图桶】查看加入方式。
1. 数据准备
此部分主要是读取原始数据,并初始化绘图参数。
% 读取数据
load data.mat
% 初始化参数
dataset = P;
lbs = {'Yield strength',...
'Ultimate tensile strength',...
'Elongation to fracture',...
'UTS×EF',...
'Saturation induction',...
'Coercivity',...
'Electrical resistivity'};
lgs = {'M-MCA','Fe-49Co-2V','Fe-78.5Ni','Fe-4Si'};
2. 颜色定义
作图不配色就好比做菜不放盐,总让人感觉少些味道。
但颜色搭配比较考验个人审美,需要多加尝试。
这里直接使用TheColor配色工具中的SCI权威配色库:
%% 颜色定义
map = TheColor('sci',1796);
C = map(1:4,:);
获取方式:公众号(阿昆的科研日常)后台回复 TC
3. 雷达图绘制
利用‘spider_plot_k’工具,绘制初始雷达图。
spider_plot_k(dataset,...
'AxesLabels', lbs,... % 角度坐标标签
'AxesLabelsEdge', 'none',... % 角度坐标标签边框
'AxesLabelsOffset',0.2,... % 角度坐标标签偏移量
'LabelFontSize',12,... % 角度坐标标签字号
'AxesLineStyle','--',... % 角度坐标轴线型
'AxesLineWidth',0.5,... % 角度坐标轴线宽
'AxesDisplay', 'one',... % 半径坐标刻度
'AxesLimits', [1,1,1,1,1,1,1;10,10,10,10,10,10,10],... % 半径坐标范围
'AxesPrecision', 0,... % 半径坐标刻度值精度
'AxesFontSize',11,... % 半径坐标标签字号
'AxesInterval', 4,... % 半径坐标轴线数
'AxesHorzalign','center',... % 半径坐标标签水平对齐模式
'AxesVertalign','bottom',... % 半径坐标标签垂直对齐模式
'BackgroundColor','none',... % 背景颜色
'Color', C,... % 线颜色
'LineWidth', 1.5,... % 线宽
'Marker', {'v', 'o', '^', 's'},... % 符号类型
'MarkerSize',50,... % 符号尺寸
'FillOption', {'on', 'on', 'on', 'on'},... % 是否填充
'FillTransparency', 0.12); % 填充透明度
4. 细节优化
为了插图的美观,对坐标轴细节等进行美化。设置完毕后,以期刊所需分辨率、格式输出图片即可:
%% 图片输出
exportgraphics(figureHandle,'test.png','Resolution',300)
以上。