본문 바로가기
programming language/MATLAB

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

by 남성 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() 함수를 이용해서 날짜를 표시해 주는 것이 좋습니다.

 

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

 

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


댓글2

  • bnnj 2020.07.13 16:03

    안녕하세요, 포스팅 감사합니다. 다름이 아니라 '월일시분' 데이터를 나타내고자 할때 >> date=datenum(num2str(date_o),'mmddhhmm'); 는 안 돼는데, 혹시 방법을 아실까요?
    답글

    • 남성 2020.07.13 17:18 신고

      mm 은 월을 나타냅니다. datenum 과 관련된 메뉴얼을 확인해 보시면 분을 나타낼때는 대문자 MM 으로 써야 합니다.