【Matlab绘图进阶第5弹】Matlab绘制三维散点图

散点图又称之为气泡图、主要分为二维散点图与三维散点图、常用于反映数值之间的相对位置、在工科方面常见于机器学习和深度学习分类算法中的特征密度展示。本期为三维散点图绘制、后续会出二维散点图教程。下面来和我一起实现散点图的绘制吧!

成图效果展示

【Matlab绘图进阶第5弹】Matlab绘制三维散点图_第1张图片

【Matlab绘图进阶第5弹】Matlab绘制三维散点图_第2张图片

【Matlab绘图进阶第5弹】Matlab绘制三维散点图_第3张图片

【Matlab绘图进阶第5弹】Matlab绘制三维散点图_第4张图片

绘图三步走 

  1. 取色

    取色的核心是获取0-1之间的RGB值矩阵、配色的好坏直接决定着图形的颜值高低、论文的门面即是图表。

  2. 数据准备

    三维散点图的数据主要包括X、Y、Z、ZF三维或者四维度数据矩阵、其中ZF为数据点的特征列、决定颜色深浅与散点大小。

  3. 函数使用

    三维散点图的函数主要为scatter3、二维散点图函数为scatter。

  1. 取色 

此次取色步骤和之前取色过程不同、三维散点图需要很多种颜色渐进、即colormap,大小约为n*3的数据矩阵,需要选取两种基础色进行线性插值、具体基础色如下图: 

【Matlab绘图进阶第5弹】Matlab绘制三维散点图_第5张图片

 接着对两种颜色进行线性插值、生成n组RGB值,实现一个颜色柱的绘制、从而得到一个完整的色系。生成后的色系图如下:

【Matlab绘图进阶第5弹】Matlab绘制三维散点图_第6张图片

 如上图所示、由两种基础色——完整的色彩柱就生成啦,大小为n*3,并将其保存为mycolor.mat文件用于matlab读取。

  2. 数据准备

数据是小编用随机数函数randperm生成的四维度数据,分别为X、Y、Z、ZF,其中前者为三维数据点、后者为数据特征大小与颜色深浅,具体代码如下:

%% 随机生成X,Y,Z数据
X = 1:64;
Y = randperm(64);
Z = randperm(64);
ZF = randperm(64)*30;% 散点特征:散点值大小/颜色深浅

   3. 函数使用

绘制三维散点图主要函数为scatter、参数分别为X、Y、Z、ZF与颜色矩阵n*3。下面为主要绘图代码:

%% 导入所有颜色矩阵
% 颜色文件有8种颜色map
load mycolor.mat;
%% 开始绘制三维散点图
mycolor_value= mycolor1;
figure('color',[1 1 1]);
scatter3(X,Y,Z,ZF,mycolor_value,'.');
colormap(mycolor_value);
colorbar()

 接下来是完善坐标区与各个标题信息。

%% 完善图例与坐标区
xlabel('X','Fontname','微软雅黑');
ylabel('Y','Fontname','微软雅黑');
zlabel('Z','Fontname','微软雅黑');
title('三维散点','Fontname','微软雅黑');
set(gca,'Box','on');
ax = gca;
ax.BoxStyle = 'full';
set(gca,'Xgrid','off','Ygrid','off','Zgrid','off');
set(gca,'Linewidth',1.2);

 一张完整的三维散点图做好啦、赶快收藏起来吧!

【Matlab绘图进阶第5弹】Matlab绘制三维散点图_第7张图片

【Matlab绘图进阶第5弹】Matlab绘制三维散点图_第8张图片

 

【Matlab绘图进阶第5弹】Matlab绘制三维散点图_第9张图片

 

 完整代码资料获取方式

 Matlab绘制三维散点图资料链接

 

 

 

你可能感兴趣的:(matlab,开发语言,算法)