三维剖面绘制

需要连续展示垂向结构,截取任意位置的剖面共同展示
例如需做此类图件:
区域内地震波速度结构随深度的变化

以该图为例,每条剖面的 surf()函数 内参数 YZ 坐标值是固定的,只有 X 发生变化
因此,在绘制多条剖面在同一坐标系内时,只需修改对应剖面位置的X即可。
绘制沿其他方向的剖面与此类似,即修改surf()函数对应的X、Y、Z参数即可。

figure(3);  %图窗
[Y,Z] = meshgrid(21:0.25:27,-150:10:-10);

X1 = ones(Nx,Ny)*104;
C1 = Ydata1;
h1 = surf(X1,Y,Z,C1)
set(h1,'FaceColor','interp','EdgeColor','none');
colorbar
hold on

X2 = ones(Nx,Ny)*105;
C2 = Ydata2;
h2 = surf(X2,Y,Z,C2)
set(h2,'FaceColor','interp','EdgeColor','none');
colorbar
hold on

axis([104 113 21 27 -150 0]);
caxis([3.5 4.5]);
colormap(flipud(jet));

set(gca,'FontName','Times New Roman','XTickLabel',...
    {'104°E','105°E','106°E','107°E','108°E','109°E','110°E','111°E','112°E','113°E'},'YTickLabel',...
   {'21°N','22°N','23°N','24°N','25°N','26°N','27°N'},'ZTickLabel',...
   {'150km','100km','50km','0km','100km','50km','0km'},...
    'FontSize',11);
c = colorbar;
c.Label.String = 'velocity(km/s)';
set(c,'fontsize',12);

此处仅说明surf()函数参数注意事项,其他可通过matlab help功能查询

surf(X2,Y,Z,C2) 

matlab中surf函数可单独使用,前置句柄是为了后续方便设置剖面显示参数。
【参数设置】
注意保持X、Y、Z、C 数组大小一致 即可。
X、Y、Z 分别代表剖面数据在各分量上的位置信息
C 代表剖面对应点的数值信息
以上图为例,X、Y、Z、C 数组中对应位置的值代表该点的横坐标、纵坐标、深度值以及对应的波速值

set(h1,'FaceColor','interp','EdgeColor','none');

set()函数 设置三维剖面的显示细节

axis([104 113 21 27 -150 0]);

axis() 函数 给定坐标系范围

caxis([3.5 4.5]);

caxis() 函数 给定色标范围

colormap(flipud(jet));

jet 色标名称
colormap() 使用某色标
flipud() 将色标翻转

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值