MATLAB: Plot two axesm with different colormaps

axesmcolormapmappingMapping Toolboxtoolbox

How to plot two axesm with different colormaps in the same graph?

Best Answer

In mapping Toolbox, axesm doesn’t create a new axes (it modifies the current axes), so the handles to the first and second call to axesm are the same axes. 
The second colormap overwrites the first one. 
In order to have two colormaps, a new axes needs to be created for the second map axes.  
For example, 
% create the first axis
hAxesJ = axesm('MapProjection','mercator',...
'Frame','on',...
'Grid','on',...
'GColor','k',...
'MapLatLimit',[25 75],...
'MapLonLimit',[-100 20],...
'ParallelLabel','on',...
'MeridianLabel','on',...
'FontSize',10);
colormap(hAxesJ,winter);
% Create a second axes
hAxesS = axes;
% Turn off the decorations, backdrop etc. of the second axes so it doesn't cover the first one
axis(hAxesS,'off')
% Make sure the second axes is current (gca)
axes(hAxesS)
hAxesd = axesm('MapProjection','mercator',...
'Frame','on',...
'Grid','on',...
'GColor','k',...
'MapLatLimit',[25 75],...
'MapLonLimit',[-100 20],...
'ParallelLabel','on',...
'MeridianLabel','on',...
'FontSize',10);
cbS = colorbar(hAxesd,'Location','east');
%set colormap for second axes
colormap(hAxesd,spring);