利用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)结果图:
三维结果图

3讨论

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

4、参考

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

  • 8
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

good_learn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值