MATLAB Answers

C G
0

Move mlabel positions off axis

Asked by C G
on 13 Aug 2018 at 0:28
Latest activity Commented on by Chad Greene
on 15 Aug 2018 at 23:46

I have this really nice map, but I need to change two things. 1. The longitude labels are on the axis. Does anyone know how to move the labels off of the axis? 2. The latitude labels are fine, except they are not uniform. How can I change the 75 to an 80?

Here is my code.

 load coastlines
figure('Color','w')%Colors the figure white.
axesm('stereo','Origin',[-90 0],'MapLatLimit',[-90 -50]);
axis off;
framem on;
gridm on;
mlabel on;
plabel on;
setm(gca,'MLabelParallel',10)
geoshow(coastlat,coastlon,'DisplayType','polygon', 'FaceColor', 'white');

I tried this to get the latitude limits, but nothing changed.

 axesm('stereo','Origin',[-90 0],'MapLatLimit',[-90 -50],'FLatLimit',[-90 -60]);

I then tried this, but the 75 was still there, and 45 degrees showed up. It also made Antarctica look too small. So, I tried 60 degrees as my limit, but 75 was still there.

 axesm('stereo','Origin',[-90 0],'MapLatLimit',[-90 -40]);
axesm('stereo','Origin',[-90 0],'MapLatLimit',[-90 -60]);

I figured out how to move the labels manually in figure properties, but there must be a way to move things around within the code.

  0 Comments

Sign in to comment.

1 Answer

Answer by Chad Greene
on 14 Aug 2018 at 18:04
 Accepted Answer

How is this?

setm(gca,'plabellocation',10,'labelrotation','on')

The 'plabellocation' is poorly named, but it means the spacing of latitudes (p for parallels). The 10 value for 'plabellocation' places lines every 10 degrees latitude. The 'mlabelrotation' rotates the labels around the circle to keep them from conflicting with the outside of the axis.

A note: the default coastline in Matlab is not really a coast line, and it's also not really a grounding line. Take a look at the Ross Ice Shelf, where the coastlat and coastlon appear to follow the grounding line, but on the Filchner Ronne Ice Shelf it follows the edge of the ice. Amery and George VI are also a bit wonky. You can simply type

bedmap2('gl') 

Or

bedmap2('coast') 

to get more accurate outlines of the continent.

  4 Comments

Show 1 older comment

You can absolutely combine bedmap2 with map coordinates. Start from scratch and run this:

figure('Color','w')%Colors the figure white.
axesm('stereo','Origin',[-90 0],'MapLatLimit',[-90 -50]);
framem on;
gridm on;
mlabel on;
plabel on;
bedmap2('gl')
bedmap2('coast')
setm(gca,'plinelocation',10,'plabellocation',10,...
   'labelrotation','on')

That should provide this image:

C G
on 15 Aug 2018 at 23:38

It does! I am impressed and very grateful. Thank you so much.

Fantastic. Glad it's working.

Sign in to comment.