MATLAB: How to insert geographical map under other grid data map

insert geographical mapMATLAB

I have a grid of data including 208 columns, 168 rows then I plotted some grid points (the attachment). I would like to insert a geographical map underneath (latitude: 10 – 52 degree, longtitude: 120 – 172) so that the grid borders lies exactly on the area of the geographical map and the x,y axis show values of lattitude and longtitude. How can I do that? Many thanks in advance

Best Answer

First you need a shapefile. You can find shapefiles on different places on the web. I've found naturalearthdata.com to work great for country borders. I've used the one called "Admin 0 - Boundary lines", so I can vouch for it. Just download the 10MB file and put the unzipped folder in your MATLAB path.
Drawing shapefile:
Borders_shp=shaperead('ne_10m_admin_0_countries.shp')
LandBorders=geoshow(gca,[Borders_shp.Y],[Borders_shp.X],'color',[0.3 0.3 0.3],'linewidth',0.25);
Overlay your data (denoted x & y):
h=geoshow(gca, x,y,'DisplayType', 'multipoint');
or if you want the color of your markers to describe some z-data, use this instead:
scatterm(x,y,[],z)
Set the axes limits already when you create your frame. For example:
axesm('mercator',...
'FLatLimit',[10 52],...
'FLonLimit',[120 172])