雷达图,也称为蜘蛛网图或星形图,是一种用于可视化多个变量之间关系的图表。它以一个中心点为起点,从中心向外辐射出多条轴线,每条轴线代表一个变量。在每条轴线上,通过不同的数据点或者连线来表示不同变量的取值或者关系。综合分析多个指标、展示多维数据、比较不同数据集、视觉化数据分析、展示变量间的相对关系,是一种多功能的图表工具,能够帮助人们更好地理解数据,做出合理的判断和决策。
雷达图常用于比较不同实体在多个维度上的表现,例如产品的特征对比、团队成员的能力评估等。通过雷达图,我们可以直观地看到各个变量之间的相对差异和关系。
绘制雷达图的步骤如下:
确定需要比较的变量和其取值范围。
在一个平面上绘制出多条等分的轴线,每条轴线代表一个变量。
沿着每条轴线根据变量的取值范围划分出若干等分点。
根据实际数据,在相应的等分点上标记出数据点或者连线。
连接各个数据点或者连线,形成一个封闭的多边形。
通过雷达图,我们可以直观地比较不同实体在各个维度上的表现,并且可以发现各个维度之间数量对比关系。
本文采用matlab代码实现了雷达图绘制,效果如图所示:
实现代码主程序如下所示:
%% 雷达图
close all;clear;clc;
% 读取数据
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'};
%% 颜色定义
map = colormap(nclCM(289));%color包里选颜色
C = map(1:4,:);
%% 图片尺寸设置(单位:厘米)
close all;
figureUnits = 'centimeters';
figureWidth = 20;
figureHeight = 12;
%% 窗口设置
figureHandle = figure('color','w');
set(gcf, 'Units', figureUnits, 'Position', [0 0 figureWidth figureHeight]);
%% 雷达图绘制
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); % 填充透明度
%% 细节优化
% Legend
hLegend = legend(lgs,...
'FontWeight','normal',...
'Box','off',...
'Location', 'northeast');
% Legend位置微调
LP = hLegend.Position;
hLegend.Position = LP + [0.15 -0.25 0 0.05];
% 字体和字号
set(hLegend, 'FontName', 'Arial', 'FontSize', 10)
th = findobj(gca, 'Type', 'text');
set(th, 'FontName', 'Arial', 'fontweight','bold')
% 背景颜色
set(gcf,'Color',[1 1 1])
%% 图片输出
exportgraphics(figureHandle,'test.png','Resolution',300)
详细代码链接如下: