【Matlab绘图进阶第5弹】Matlab绘制三维散点图
散点图又称之为气泡图、主要分为二维散点图与三维散点图、常用于反映数值之间的相对位置、在工科方面常见于机器学习和深度学习分类算法中的特征密度展示。本期为三维散点图绘制、后续会出二维散点图教程。下面来和我一起实现散点图的绘制吧!
成图效果展示
绘图三步走
-
取色
取色的核心是获取0-1之间的RGB值矩阵、配色的好坏直接决定着图形的颜值高低、论文的门面即是图表。
-
数据准备
三维散点图的数据主要包括X、Y、Z、ZF三维或者四维度数据矩阵、其中ZF为数据点的特征列、决定颜色深浅与散点大小。
-
函数使用
三维散点图的函数主要为scatter3、二维散点图函数为scatter。
👉 1. 取色
此次取色步骤和之前取色过程不同、三维散点图需要很多种颜色渐进、即colormap,大小约为n*3的数据矩阵,需要选取两种基础色进行线性插值、具体基础色如下图:
接着对两种颜色进行线性插值、生成n组RGB值,实现一个颜色柱的绘制、从而得到一个完整的色系。生成后的色系图如下:
如上图所示、由两种基础色——完整的色彩柱就生成啦,大小为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);
一张完整的三维散点图做好啦、赶快收藏起来吧!
完整代码资料获取方式
甜酒酿芯芯つ: 您好,想问一下这个图源自哪篇SCi论文呢?可以分享个链接或者分享个文献原文嘛
SYS328: 为啥我运行完是灰色的球呢
CSDN-Ada助手: 恭喜您撰写了第12篇博客!真是不断进步啊!标题中的“Matlab绘制误差阴影图”听起来非常有趣,期待能够从您的博客中学到更多关于Matlab绘图的知识。 对于下一步的创作建议,我谨虚心提出一些建议。或许您可以考虑分享一些实际应用中的案例,展示如何使用Matlab绘制误差阴影图来分析数据。此外,您也可以介绍一些常见的误差阴影图类型,以及它们在不同领域的应用,这将进一步丰富读者的知识。 再次恭喜您的持续创作,期待您的下一篇博客!
qq_40889430: 请问点与点间连线可以随数值变化而颜色有变化吗
CSDN-Ada助手: 恭喜您写了第10篇博客!学习绘图不易,您的坚持和努力令人钦佩。对于您的下一步创作,我建议您可以尝试更多不同类型的绘图,如热力图、散点图等,这样可以让读者更加全面地了解Matlab的绘图功能。期待您的更多精彩作品! CSDN 会根据你创作的博客的质量,给予优秀的博主博客红包奖励。请关注 https://bbs.csdn.net/forums/csdnnews?typeId=116148&utm_source=csdn_ai_ada_blog_reply10 看奖励名单。