MATLAB: Plot two asexm with different colormaps in the same graph

axesmcolormapmappingMapping Toolboxtoolbox

How to have 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 asexm with different 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);