** 我们在用matlab作图的时候通常会仿照网上的一些图片,这时候我们会发现,在画空间图的时候,有些colorbar的内外两侧都是有标签的,那么这是如何做到的呢?下面我来演示一下。
ullat = 89.75;
ullon = -179.75;
res_target = 0.5;
lat_target = ullat:-res_target:-89.75;
lon_target = ullon:res_target:179.75;
[glon_target,glat_target] = meshgrid(lon_target,lat_target);
[nrow_target,ncol_target] = size(glon_target);
ax = axes('Position',[0.1 0.1 0.8 0.8]); % 位置需要自己调奥
box on; hold on;
axesm('eqaazim', 'MapLatLimit',[30 90], 'Frame','off','Grid','off','FontColor','black','parallellabel','on','PLabelMeridian',160,'fontname','Helvetica','FontSize',fsize-2);
setm(gca, 'GLineStyle',':', 'Grid', 'off', 'Frame','on','FLineWidth', 0.05,...
'MLineLocation', 15, 'PLineLocation', 15, 'MLineFill', 200,....
'PLineFill', 200,'fedgecolor','k');
set(gca,'xcolor',[1 1 1],'ycolor',[1 1 1]);%,'position',[0 0.1 0.9 0.8]);
set(gca,'FontSize',fsize, 'FontName','Arial');
coast = load('coast');
geoshow('landareas.shp', 'FaceColor', [202 202 202]/255); % 画陆地,将陆地的颜色设为灰色
mp = pcolorm(glat_target,glon_target,temp_trend);
geoshow(coast.lat,coast.long,'DisplayType','Line','Color','k','linewidth',0.001);
set(gca,'FontSize',fsize, 'FontName','Arial');
colormap(cmap2);
cb1 = colorbar;
cb1.Location = 'eastoutside';
caxis([-0.2 0.2]);
poscb = cb1.Position;
poscb(1) = poscb(1)* 1.18;
poscb(2) = poscb(2)* 0.85;
poscb(3) = poscb(3)* 0.5;
poscb(4) = poscb(4)* 1.1;
cb1.Position = poscb;
cb1.Ticks = -0.2:0.08:0.2;
cb1.TickLength = 0.012;
cb2 = colorbar;
caxis([-0.2 0.2]);
poscb = cb2.Position;
poscb(1) = poscb(1)* 1.18;
poscb(2) = poscb(2)* 0.85;
poscb(3) = poscb(3)* 0;
poscb(4) = poscb(4)* 1.1;
cb2.Position = poscb;
cb2.Ticks = -0.2:0.08:0.2;
cb2.AxisLocation = 'in';
cb2.TickLabels = [];
cb2.TickLength = 0.012;
**左图是我画的春季温度趋势的北极俯视图(非常不好意思,图片不能外传,只是示意),其中cmap 和temp_trend 都是自己命名的变量,不能直接运行奥,在colorbar内外两侧都添加Ticks的秘诀在代码的后半部分,即设置两套colorbar,第一套colorbar代码为cb1 = colorabar; 第二套为cb2 = colorbar; 两套代码的位置一样,但Tick 的方向不同,一个in 一个out,且cb2 的colorbar宽度设为0.