You have collected your data, loaded it into Matlab , analyzed everything to death, and now you want to make a simple map showing how it relates to the world.
But you can't.
Instead you have to figure out how to save all your data, and then read it into another program (like, for example GMT ), and then spend all that extra time figuring out why it doesn't give you what you expected it would...
No more!
New in release 1.3g are
A number of examples have been given to highlight the various capabilities of M_Map.
You can also get m_namebox (a set of utilities for automatically adding names to you map), either through its home page http://www.gfi.uib.no/~even/matlab/m_namebox/m_namebox.html or directly as a zip file
m_proj('ortho','lat',48','long',-123'); m_coast('patch','r'); m_grid('linest','-','xticklabels',[],'yticklabels',[]); patch(.55*[-1 1 1 -1],.25*[-1 -1 1 1]-.55,'w'); text(0,-.55,'M\_Map','fontsize',25,'color','b',... 'vertical','middle','horizontal','center'); set(gcf,'units','inches','position',[2 2 3 3]); set(gcf,'paperposition',[3 3 3 3]);
m_proj('lambert','long',[-160 -40],'lat',[30 80]); m_coast('patch',[1 .85 .7]); m_elev('contourf',[500:500:6000]); m_grid('box','fancy','tickdir','in'); colormap(flipud(copper));
% Note that coastline is drawn OVER the grid because of the order in which % the two routines are called m_proj('stereographic','lat',90,'long',30,'radius',25); m_elev('contour',[-3500:1000:-500],'edgecolor','b'); m_grid('xtick',12,'tickdir','out','ytick',[70 80],'linest','-'); m_coast('patch',[.7 .7 .7],'edgecolor','r');
subplot(211); Slongs=[-100 0;-75 25;-5 45; 25 145;45 100;145 295;100 290]; Slats= [ 8 80;-80 8; 8 80;-80 8; 8 80;-80 0; 0 80]; for l=1:7, m_proj('sinusoidal','long',Slongs(l,:),'lat',Slats(l,:)); m_grid('fontsize',6,'xticklabels',[],'xtick',[-180:30:360],... 'ytick',[-80:20:80],'yticklabels',[],'linest','-','color',[.9 .9 .9]); m_coast('patch','g'); end; xlabel('Interrupted Sinusoidal Projection of World Oceans'); % In order to see all the maps we must undo the axis limits set by m_grid calls: set(gca,'xlimmode','auto','ylimmode','auto'); subplot(212); Slongs=[-100 43;-75 20; 20 145;43 100;145 295;100 295]; Slats= [ 0 90;-90 0;-90 0; 0 90;-90 0; 0 90]; for l=1:6, m_proj('mollweide','long',Slongs(l,:),'lat',Slats(l,:)); m_grid('fontsize',6,'xticklabels',[],'xtick',[-180:30:360],... 'ytick',[-80:20:80],'yticklabels',[],'linest','-','color','k'); m_coast('patch',[.6 .6 .6]); end; xlabel('Interrupted Mollweide Projection of World Oceans'); set(gca,'xlimmode','auto','ylimmode','auto');
%% Nice looking data [lon,lat]=meshgrid([-136:2:-114],[36:2:54]); u=sin(lat/6); v=sin(lon/6); m_proj('oblique','lat',[56 30],'lon',[-132 -120],'aspect',.8); subplot(121); m_coast('patch',[.9 .9 .9],'edgecolor','none'); m_grid('tickdir','out','yaxislocation','right',... 'xaxislocation','top','xlabeldir','end','ticklen',.02); hold on; m_quiver(lon,lat,u,v); xlabel('Simulated surface winds'); subplot(122); m_coast('patch',[.9 .9 .9],'edgecolor','none'); m_grid('tickdir','out','yticklabels',[],... 'xticklabels',[],'linestyle','none','ticklen',.02); hold on; [cs,h]=m_contour(lon,lat,sqrt(u.*u+v.*v)); clabel(cs,h,'fontsize',8); xlabel('Simulated something else');
% Plot a circular orbit lon=[-180:180]; lat=atan(tan(60*pi/180)*cos((lon-30)*pi/180))*180/pi; m_proj('miller','lat',82); m_coast('color',[0 .6 0]); m_line(lon,lat,'linewi',3,'color','r'); m_grid('linestyle','none','box','fancy','tickdir','out');
m_proj('lambert','lon',[-10 20],'lat',[33 48]); m_tbase('contourf'); m_grid('linestyle','none','tickdir','out','linewidth',3);
m_vec % See code in m_vec.m for details
% Example showing the default coastline and all of the different resolutions % of GSHHS coastlines as we zoom in on a section of Prince Edward Island. clf axes('position',[.35 .6 .37 .37]); m_proj('albers equal-area','lat',[40 60],'long',[-90 -50],'rect','on'); m_coast('patch',[0 1 0]); m_grid('linest','none','linewidth',2,'tickdir','out','xaxisloc','top','yaxisloc','right'); m_text(-69,41,'Standard coastline','color','r','fontweight','bold'); axes('position',[.09 .5 .37 .37]); m_proj('albers equal-area','lat',[40 54],'long',[-80 -55],'rect','on'); m_gshhs_c('patch',[.2 .8 .2]); m_grid('linest','none','linewidth',2,'tickdir','out','xaxisloc','top'); m_text(-80,52.5,'GSHHS\_C (crude)','color','m','fontweight','bold','fontsize',14); axes('position',[.13 .2 .37 .37]); m_proj('albers equal-area','lat',[43 48],'long',[-67 -59],'rect','on'); m_gshhs_l('patch',[.4 .6 .4]); m_grid('linest','none','linewidth',2,'tickdir','out'); m_text(-66.5,43.5,'GSHHS\_L (low)','color','m','fontweight','bold','fontsize',14); axes('position',[.35 .05 .37 .37]); m_proj('albers equal-area','lat',[45.8 47.2],'long',[-64.5 -62],'rect','on'); m_gshhs_i('patch',[.5 .6 .5]); m_grid('linest','none','linewidth',2,'tickdir','out','yaxisloc','right'); m_text(-64.4,45.9,'GSHHS\_I (intermediate)','color','m','fontweight','bold','fontsize',14); axes('position',[.55 .23 .37 .37]); m_proj('albers equal-area','lat',[46.375 46.6],'long',[-64.2 -63.7],'rect','on'); m_gshhs_h('patch',[.6 .6 .6]); m_grid('linest','none','linewidth',2,'tickdir','out','xaxisloc','top','yaxisloc','right'); m_text(-64.18,46.58,'GSHHS\_H (high)','color','m','fontweight','bold','fontsize',14);
m_proj('UTM','long',[-72 -68],'lat',[40 44]); m_gshhs_i('color','k'); m_grid('box','fancy','tickdir','in'); % fake up a trackline lons=[-71:.1:-67]; lats=60*cos((lons+115)*pi/180); dates=datenum(1997,10,23,15,1:41,zeros(1,41)); m_track(lons,lats,dates,'ticks',0,'times',4,'dates',8,... 'clip','off','color','r','orient','upright');
m_proj('hammer','clong',170); m_grid('xtick',[],'ytick',[],'linestyle','-'); m_coast('patch','g'); m_line(100.5,13.5,'marker','square','color','r'); m_range_ring(100.5,13.5,[1000:1000:15000],'color','b','linewi',2); xlabel('1000km range rings from Bangkok');