[M_Map Tutorial] Customizing axes

SEANDOPREP·2023년 11월 17일
2

[M_Map Tutorial]

목록 보기
4/4
post-thumbnail

M_Map Tutorial 시리즈는 M_Map 공식 User Guide를 기반으로 작성되었음을 미리 밝힙니다.

이번 포스트에서는 Customizing axes에 대해 알아보겠습니다. 축을 잘 만드는 것은 지도의 내용만큼 중요합니다. 어떻게 축을 만들었느냐에 따라서 해석의 폭이 넓어지기도 하는데요. 이번 포스트에서는 축을 Custom하는 다양한 방법을 알아보겠습니다.

Grid lines and labels

Grid

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 좌표계를 사용할 일이 꽤 많으므로 잘 알아둡시다.

Titles and x/ylabels

제목과 x축, y축 라벨은 기존 matlab에서 사용하던 명령어를 그대로 사용하면 됩니다.

Legend Boxes

m_legend 명령어를 사용하여 legend box를 추가할 수 있습니다. 역시 입력 인자는 일반적인 legend 명령어와 같습니다.

Scale Bars

축척은 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 등과 같은 인자들이 주로 사용되는데요. 이후에 아래에 있는 예제를 소개하는 시간에 더 자세히 설명하겠습니다.

North Arrow

m_northarrow(-150,0,40,'type',4,'linewi',.5);

위 그림의 왼쪽 중단에 위치한 화살표와 같이, 북쪽을 가리키는 화살표가 필요한 경우가 있습니다. m_northarrow라는 명령어에 위도/경도와 크기를 입력해주면 원하는 위치에 화살표를 넣을 수 있습니다. 크기 역시 위도 단위로 입력해주면 되고, 화살표는 patch로 그려지기 때문에 patch를 만들 때 사용하는 입력 인자들이 모두 사용될 수 있습니다.

이번 포스트에서는 여러 명령어들을 통해 축을 커스텀하는 방법을 알아봤습니다. 이번에도 기초적인 내용만 압축적으로 담았으며, 예제에서 더 자세히 다루도록 하겠습니다. 그럼 다음번에 Adding your own data(1)이라는 포스트로 돌아오겠습니다. 해당 부분은 양이 많기도 하고, M_Map을 활용해서 자신만의 그림을 그리기 위해 꼭 알아야 되는 부분이기 때문에 두 번에 걸쳐 상세히 소개할 예정이니 참고 바랍니다. 감사합니다.

profile
SATELLITE GEOSCIENCE & AI

0개의 댓글