본문 바로가기
programming language/MATLAB

MATLAB 축에 날짜 표시하기 datetick()

by __observer__ 2012. 6. 20.
반응형

MATLAB 에서 다양한 그래프를 이용해 왔지만 제가 하는 분양의 특성상 축을 날짜로 표시할 일은 없었습니다.

 

그런데 주식이나 재무와 같은 분야에서 MATLAB 을 어떻게 이용하나 봤더니 x 축을 날짜로 표시하는게 일반 적이더군요.

 

MATLAB 에서 특정 축을 date format 으로 나타내 주기 위해서는 datetick () 을 사용하면 됩니다.

 

아래 예제는 제가 사용하는 HTS 에서 특정 회사의 주가 차트를 로드해서 종가 차트를 그려 본 겁니다.

 

주가 파일은 다음과 같이 생겼습니다. 첫째 열이 날짜고 5번째 열이 종가 입니다.

 



TestStock.xlsx


 

%% 주가 차트 읽기

[num,txt,raw] = xlsread('TestStock.xlsx'); % 주가 파일 읽기

date_v=num(:,1); % date

date_nv=datenum(num2str(date_v),'yyyymmdd'); % 형식에 맞게 변환

price_v=num(:,5); % 종가

 

%% 차트 그리기

figure,plot(date_nv, price_v), grid on % 종가 차트 그리기

xlabel('Date [Year-Month-Day]'), ylabel('Price')

datetick('x','yy-mm-dd') % x 축을 날짜(년-월-일)로 표시

%%

 

위 코드에서 datetick('x','yy-mm-dd') 의 'x'는 x 축을 말하는 겁니다.

 

y 축을 날짜로 만들어 주고 싶다면 'y' 라고 설정하면 되겠죠.

 

그리고 'yy-mm-dd' 부분은 날짜를 나타내고 싶은 형식을 의미 합니다.

 

날짜의 형식에 대해서는 다음 주소의 MATLAB help 를 확인 해 보시기 바랍니다.

 

http://www.mathworks.co.kr/help/techdoc/ref/datetick.html

 

축의 tick 값을 날짜로 나타내기 위해서는 당연히 축의 값이 날짜 관련 값이어야겠죠.

 

따라서 datetick()을 이용하는 그래프의 축 데이터는 datenum() 함수를 이용해서 날짜를 표시해 주는 것이 좋습니다.

 

위 예제에 따른 결과는 다음과 같이 나옵니다.

 

종가만 이용해서 선 차트를 그렸더니 자주 보던 캔들 차트와 달라서 그런지 약간 어색하긴 하네요 ㅋㅋㅋ


반응형

댓글