M_Map Tutorial 시리즈는 M_Map 공식 User Guide를 기반으로 작성되었음을 미리 밝힙니다.
이번 포스트에서는 Customizing axes에 대해 알아보겠습니다. 축을 잘 만드는 것은 지도의 내용만큼 중요합니다. 어떻게 축을 만들었느냐에 따라서 해석의 폭이 넓어지기도 하는데요. 이번 포스트에서는 축을 Custom하는 다양한 방법을 알아보겠습니다.
Grid는 아래의 명령어를 통해 생성하거나 지울 수 있습니다.
m_grid; % Grid 생성
m_ungrid; % Grid 제거
특히 m_grid 명령어에는 아래와 같이 다양한 인자를 활용한 custom화가 가능합니다.
'color',colorspec
'gridcolor',colorspec
'backgroundcolor',colorspec
'linewidth', value
'linestyle', ( linespec | 'none' )
'fontsize',value
'fontname',name
활용 예시는 아래와 같습니다.
figure;
m_proj('Lambert');
m_coast;
m_grid('xtick',10,'box','fancy','tickdir','out','yaxislocation','right','fontsize',7);
xtick은 x축의 눈금 값을 설정해주며, 위경도 좌표계에서는 일반적으로 위도의 눈금 값을 의미합니다. 단일 숫자를 입력하면 그 숫자만큼 눈금이 생성되고, 배열을 입력하면 해당 위치에 눈금이 생성됩니다. xticklabels를 활용해 라벨을 붙일 수 있으며, xlabeldir는 그 라벨의 위치를 정해줍니다. 추가로, ticken은 눈금의 크기를 의미합니다.
'xtick',( num | [value1 value2 ...])
'xticklabels',[label1;label2 ...]
'xlabeldir', ( 'middle' | 'end' )
'ticklen',value
box는 지도를 둘러싸는 선의 종류를 정해줍니다. 'on', 'off', 그리고 'fancy'까지 총 3가지 옵션이 존재하는데요. 'on'은 평범한 선분, 'off'는 아무것도 없도록, 그리고 'fancy'는 위 그림과 같이 독특한 모양을 나타내게 됩니다.
'box',( 'on' | 'off' | 'fancy' )
tickdir은 눈금이 지도 안으로 들어올지, 밖으로 나갈지를 정해주는 인자입니다. 위의 예시에서는 'out'이라고 지정해줬기에 눈금들이 밖을 향하는 것을 확인할 수 있습니다. box의 인자를 'fancy'로 설정해줬다면 tickdir의 인자로 box의 종류를 결정할 수 있는데요. 'in'을 선택하면 검정색과 하얀색 패치들이 번갈아 등장하는 패턴이 그려지며, 'out'을 설정하면 위처럼 복잡한 선분이 나타나게 됩니다.
'tickdir',( 'in' | 'out' )
yaxislocation은 말 그대로 y축이 그려질 위치를 설정할 수 있는데요. x축도 같은 방식으로 설정할 수 있습니다. 'right'라고 지정해줬기 때문에 그림과 같이 y축이 지도의 오른쪽 변을 따라 설정되었네요.
'xaxisLocation',( 'bottom' | 'middle' | 'top' )
'yaxisLocation',( 'left' | 'middle' | 'right' )
UTM 좌표계를 그릴 때는 m_grid 뒤에 m_utmgrid를 넣어주면 eastings, northings를 고려한 좌표계를 추가해줍니다. UTM 좌표계를 사용할 일이 꽤 많으므로 잘 알아둡시다.
제목과 x축, y축 라벨은 기존 matlab에서 사용하던 명령어를 그대로 사용하면 됩니다.
m_legend 명령어를 사용하여 legend box를 추가할 수 있습니다. 역시 입력 인자는 일반적인 legend 명령어와 같습니다.
축척은 m_ruler 명령어로 표현할 수 있습니다.
m_ruler([X1 X2],Y1) % 가로 방향
m_ruler(X1,[Y1 Y2]) % 세로 방향
위의 예시와 같이 가로 세로 방향을 지정해줄 수 있으며, 이때의 X,Y 좌표값들은 0에서 1사이로 정규화가 되어 있어야만 합니다. 주의할 점은, m_grid는 정규화를 초기화하기 때문에 m_ruler는 m_grid 이후에 선언하는 것이 좋습니다.
m_ruler 명령어에는 color, fontsize, 그리고 tickdir 등과 같은 인자들이 주로 사용되는데요. 이후에 아래에 있는 예제를 소개하는 시간에 더 자세히 설명하겠습니다.
m_northarrow(-150,0,40,'type',4,'linewi',.5);
위 그림의 왼쪽 중단에 위치한 화살표와 같이, 북쪽을 가리키는 화살표가 필요한 경우가 있습니다. m_northarrow라는 명령어에 위도/경도와 크기를 입력해주면 원하는 위치에 화살표를 넣을 수 있습니다. 크기 역시 위도 단위로 입력해주면 되고, 화살표는 patch로 그려지기 때문에 patch를 만들 때 사용하는 입력 인자들이 모두 사용될 수 있습니다.
이번 포스트에서는 여러 명령어들을 통해 축을 커스텀하는 방법을 알아봤습니다. 이번에도 기초적인 내용만 압축적으로 담았으며, 예제에서 더 자세히 다루도록 하겠습니다. 그럼 다음번에 Adding your own data(1)이라는 포스트로 돌아오겠습니다. 해당 부분은 양이 많기도 하고, M_Map을 활용해서 자신만의 그림을 그리기 위해 꼭 알아야 되는 부분이기 때문에 두 번에 걸쳐 상세히 소개할 예정이니 참고 바랍니다. 감사합니다.