利用matlab将三维数据画成三维立体图

1、序言

三维立体图看起来美观,在很多研究中常使用三维立体图进行展示。

2、使用的数据和方法

通过查询网上的资料,自己改写程序,整理写成了matlab读取excel数据,画三维图。
(1)参考程序
clear;
filename=‘数据.xlsx’;
sheet=5;
xlRange=‘B3:K25’;
%[num]=xlsread(filename,sheet,xlRange);
[num]= xlsread(filename,sheet,xlRange);
%补充,可以读取成txt,num,raw三种格式文件
[row,col]=size(num);
%选择要读取的列数,并写到data中去
data=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19,20];
%x=zeros(row,col);
%这里选择数据作为x变量
x=num(1:row,data(7));
x1=log10(x);
xmax=max(x1);
xmin=min(x1);
%设置x的间隔值
delta_x=xmax-xmin;
inter_x=delta_x/row;
%这里选择
数据作为y变量
y=num(1:row,data(8));
y1=log10(y);
ymax=max(y1);
ymin=min(y1);
%设置y的间隔值
delta_y=ymax-ymin;
inter_y=delta_y/row;
%这里选择**数据作为z数据
z=num(1:row,data(10));
z1=log10(z);
zmax=max(z1);
zmin=min(z1);
delta_z=zmax-zmin;
inter_z=delta_z/row;

%重构三维数据,画图
%将x,y轴网格化,重构用于画图的x,y数据;
[xq,yq]=meshgrid(xmin:inter_x:xmax,ymin:inter_y:ymax);
%插值,重构用于插值的Z轴数据;
zq=griddata(x1,y1,z1,xq,yq);

figure
surf(xq,yq,zq);
hold on
xlabel(‘log10(chl a concentration)’);
ylabel(‘log10(suspended concentration)’);
zlabel(‘log10(bacteria abundance)’);
plot3(x1,y1,z1,‘o’);

(2)结果图:
利用matlab将三维数据画成三维立体图_第1张图片

3讨论

这里使用的数据可能有点问题,画的图不那么美观。但程序的思路可以给大家思考下。

4、参考

这里三维图参考了博客1:https://blog.csdn.net/weixin_41649786/article/details/81867092和
博客2:https://blog.csdn.net/LG1259156776/article/details/47761293

你可能感兴趣的:(matlab)