如何用matlab绘制三维地形图
1个回答
2017-05-17
展开全部
用matlab画地形图,包括三维地形图以及平面热度图的方法。参考代码如下:
[plain] view plain copy 在CODE上查看代码片派生到我的代码片
temp1=xlsread('cumcm2011','附件1');
x=temp1(:,2);y=temp1(:,3);%数据格式均为列向量
alti=temp1(:,4);area=temp1(:,5);
uij=min(x(:,:)):(max(x(:,:))-min(x(:,:)))/100:max(x(:,:));
vij=min(y(:,:)):(max(y(:,:))-min(y(:,:)))/100:max(y(:,:));
[xi,yj]=meshgrid(uij,vij);
z2=griddata(x,y,alti,xi,yj,'cubic');
h=pcolor(xi,yj,z2);%热度图
set(h,'edgecolor','none','facecolor','interp');%去掉网格,平滑热度图
%surf(xi,yj,z2);%曲面图
colorbar;%显示图例
hold on;
for i=1:length(area(:,1))
if(area(i)==1)
h1=plot3(x(i),y(i),alti(i),'wo');
elseif(area(i)==2)
h2=plot3(x(i),y(i),alti(i),'yo');
elseif(area(i)==3)
h3=plot3(x(i),y(i),alti(i),'go');
elseif(area(i)==4)
h4=plot3(x(i),y(i),alti(i),'mo');
elseif(area(i)==5)
h5=plot3(x(i),y(i),alti(i),'bo');
end
end
hold off;
title('区域地形图');
legend([h1,h2,h3,h4,h5],'功能区1','功能区2','功能区3','功能区4','功能区5',2);
temp2=xlsread('cumcm2011','附件2');
metal=temp2(:,2:end);
figure(1);
z2=griddata(x,y,metal(:,1),xi,yj,'cubic');
h=pcolor(xi,yj,z2);%热度图
hold on;
for i=1:length(area(:,1))
if(area(i)==1)
h1=plot3(x(i),y(i),metal(i),'wo');
elseif(area(i)==2)
h2=plot3(x(i),y(i),metal(i),'yo');
elseif(area(i)==3)
h3=plot3(x(i),y(i),metal(i),'go');
elseif(area(i)==4)
h4=plot3(x(i),y(i),metal(i),'mo');
elseif(area(i)==5)
h5=plot3(x(i),y(i),metal(i),'ko');
end
end
hold off;
title('As金属分布浓度');
set(h,'edgecolor','none','facecolor','interp');%去掉网格,平滑热度图
colorbar;%显示图例
legend([h1,h2,h3,h4,h5],'功能区1','功能区2','功能区3','功能区4','功能区5',2);%设置图例
%功能区颜色
%1-白色w;2-黄色y;3-绿色g;4-洋红色m;5-黑色k
[plain] view plain copy 在CODE上查看代码片派生到我的代码片
temp1=xlsread('cumcm2011','附件1');
x=temp1(:,2);y=temp1(:,3);%数据格式均为列向量
alti=temp1(:,4);area=temp1(:,5);
uij=min(x(:,:)):(max(x(:,:))-min(x(:,:)))/100:max(x(:,:));
vij=min(y(:,:)):(max(y(:,:))-min(y(:,:)))/100:max(y(:,:));
[xi,yj]=meshgrid(uij,vij);
z2=griddata(x,y,alti,xi,yj,'cubic');
h=pcolor(xi,yj,z2);%热度图
set(h,'edgecolor','none','facecolor','interp');%去掉网格,平滑热度图
%surf(xi,yj,z2);%曲面图
colorbar;%显示图例
hold on;
for i=1:length(area(:,1))
if(area(i)==1)
h1=plot3(x(i),y(i),alti(i),'wo');
elseif(area(i)==2)
h2=plot3(x(i),y(i),alti(i),'yo');
elseif(area(i)==3)
h3=plot3(x(i),y(i),alti(i),'go');
elseif(area(i)==4)
h4=plot3(x(i),y(i),alti(i),'mo');
elseif(area(i)==5)
h5=plot3(x(i),y(i),alti(i),'bo');
end
end
hold off;
title('区域地形图');
legend([h1,h2,h3,h4,h5],'功能区1','功能区2','功能区3','功能区4','功能区5',2);
temp2=xlsread('cumcm2011','附件2');
metal=temp2(:,2:end);
figure(1);
z2=griddata(x,y,metal(:,1),xi,yj,'cubic');
h=pcolor(xi,yj,z2);%热度图
hold on;
for i=1:length(area(:,1))
if(area(i)==1)
h1=plot3(x(i),y(i),metal(i),'wo');
elseif(area(i)==2)
h2=plot3(x(i),y(i),metal(i),'yo');
elseif(area(i)==3)
h3=plot3(x(i),y(i),metal(i),'go');
elseif(area(i)==4)
h4=plot3(x(i),y(i),metal(i),'mo');
elseif(area(i)==5)
h5=plot3(x(i),y(i),metal(i),'ko');
end
end
hold off;
title('As金属分布浓度');
set(h,'edgecolor','none','facecolor','interp');%去掉网格,平滑热度图
colorbar;%显示图例
legend([h1,h2,h3,h4,h5],'功能区1','功能区2','功能区3','功能区4','功能区5',2);%设置图例
%功能区颜色
%1-白色w;2-黄色y;3-绿色g;4-洋红色m;5-黑色k
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |