2015년 7월 2일 목요일

MATLAB에서 분할된 그래프 그리기

 MATLAB에서 여러 개의 그래프를 분할하여 하나의 그래프 창에서 모아 그리고자 하는 경우 subplot 명령을 이용한다. subplot 명령을 사용하면 그래프 창을 분할하여 다수의 그래프를 하나의 그래프 창에 도시할 수 있다. 이 명령어의 입력 인자는 그래프 창을 분할하는 행의 개수, 열의 개수 그리고 몇 번째 그래프인지를 지정하는 수의 세 개이다.

 예를 들어 subplot(2,2,3)한 후 plot(x,y)를 하면 하나의 그래프 창을 가로로 이분할, 세로로 이분할하여 3 번째의 위치에 x, y 벡터로 구성된 그래프를 도시한다는 명령이 된다. 그래프의 순서를 세는 것은 맨 첫 번째 행부터 가로로 세어 나가는 것을 원칙으로 한다.

>> x=linspace(0,2*pi,100);
>> subplot(2,2,3)
>> plot(x,sin(x))
>> subplot(2,2,2)
>> plot(x,cos(x))

[그림 1] 실행 결과 (gnu octave 실행 화면을 캡쳐한 것임)

우선 화면이 가로 세로 각 2 개씩 4 분할되는 것을 확인할 수 있으며 두 번째와 세 번째 위치에 그래프를 그리게 된다. 왼쪽 하단의 그래프가 먼저 그려지고 오른쪽 상단의 그래프가 나중에 그려지게 된다.

[그림 2] 2x2 로 분할한 경우 각 부분의 번호

각 분할 그래프의 선 모양, 색깔 바꾸기 등은 전에 설명한 바와 같이 그래프 정보 대화상자에서 할 수 있으며 명령어창에서도 가능하다. 명령어창에서 하려면 우선 subplot 함수를 이용하여 바꾸고자 하는 분할 그래프를 선택한 후 plot이나 title 등 원하는 함수를 이용하여 수정하고 나타낸다.

 다른 예를 들면 다음과 같다.

>> x=linspace(0,2*pi,100);
>> subplot(211), plot(x,sin(x))
>> subplot(212), plot(x,cos(x))

이 경우는 화면은 2분할하여 첫 번째 부분 화면에는 sin(x)를 그리는 것이고 두 번째 부분화면에는 cos(x)를 그리는 예제이다.
[그림 3] 실행 결과 (gnu octave 실행 화면을 캡쳐한 것임)

[그림 4] 2x1 로 분할하였을 경우의 그래프 번호

이 예에서와 같이 subplot()함수의 세 개의 인수는 각각 콤마(,) 로 구분하여 줄수도 있고 뿥여서 하나의 숫자로 넘겨줄 수 도 있다.


댓글 없음:

댓글 쓰기