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()함수의 세 개의 인수는 각각 콤마(,) 로 구분하여 줄수도 있고 뿥여서 하나의 숫자로 넘겨줄 수 도 있다.



Posted by 살레시오