这是一个非常简单的技巧:在同一个“位置”中创建第二个轴,并在那里制作所需的主要网格.
从您的代码开始,通过一些修改(我组合了axism和gridm):
landareas = shaperead('landareas.shp', 'UseGeoCoords', true);
% make the first axes and get the handle of it
ha = axes;
axesm ('lambert',...
'MapLonLimit', [-70 10],...
'MapLatLimit', [30 70],...
'MapParallels', [38.00555556 71.01111111],...
'Grid', 'on',...
'GLineStyle', '-',...
'GLineWidth', 0.1,...
'GColor', [.7 .7 .7], ...
'MLineLocation', 1,...
'PLineLocation', 1);
geoshow(landareas, 'FaceColor', [1 1 .5], 'EdgeColor', [.3 .3 .3]);
axis off;
然后制作第二个轴:
% get the position of the first axes
L = get(ha, 'Position');
% make a new axes in the same position
axes('Position', L)
axesm ('lambert',...
'MapLonLimit', [-70 10],...
'MapLatLimit', [30 70],...
'MapParallels', [38.00555556 71.01111111],...
'Frame', 'on',...
'FLineWidth', 2,...
'Grid', 'on',...
'GLineStyle', '-',...
'GLineWidth', 2,...
'GColor', [.2 .2 .2], ...
'MLineLocation', 5,...
'MLabelLocation', 5,...
'PLineLocation', 5,...
'PLabelLocation', 5);
mlabel on;
plabel on;
axis off;
你会得到这个结果:
甚至不必得到和设置位置,因为它们都将被创建在默认位置.