xiaoxin960904的个人博客分享 http://blog.sciencenet.cn/u/xiaoxin960904

博文

利用axes 实现多个图/colorbar的叠加

已有 750 次阅读 2022-5-5 13:58 |个人分类:Matlab学习笔记|系统分类:科研笔记

一年没更新了,随便写点什么,因为matlab文档实在是越来越完善了,我也很少搜索问题,直接看文档和例子

利用最基础的功能可以实现强大的绘图效果。

比如axes函数,通过设置axes('position',[左 下 宽 高],'color','none')将坐标轴改为透明,配合slice函数可以实现以下效果

image.png

% 绘制地图的axes1就不给了,比较简单,axes2代码如下

ax1 = axes('position',[0.1 0.1 0.85 0.85]);hold on

画地图代码

GridDep = 1:5:5000;

GridLon = 122:0.1:125;

GridV = ones(length(GridLon),1)*(-5:0.01:4.99);

GridLat = 23*ones(size(GridLon));

vv = repmat(GridV,[1 1 3]);

vv = permute(vv,[3 1 2]);

[xx,yy,zz] = meshgrid(GridLon,[22,23,24],-GridDep);

load('./Data/CTDLon_Dep.mat')

ax2 = axes('position',[0.1 0.1 0.85 0.85]);hold on

slice(xx,yy,zz,vv,[],23,[]),shading interp

view([22 67])

set(ax2,'xlim',[120 125],'ylim',[20 25],'zlim',[-6000 4000],'clipping','off',...

    'layer','top'),axis off, hidden off,box off%这里关掉坐标轴跟提到的color设置为none是一个意思

colormap(ax2,flip(jet))

h2 = colorbar(ax2,'horizontal');caxis([-4 4])

set(h2,'position',[0.6 0.85 0.3 0.02])

注意,colormap可以直接指定ax是新版才有的功能



https://blog.sciencenet.cn/blog-3386114-1337137.html

上一篇:Matlab 二维空间滤波
下一篇:matlab xlabel/text等输入epsilon ε

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2022-6-27 11:16

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部