이 포스팅을 보시는 분들이라면 다들 아시겠지만 MATLAB 의 그래픽 표현 능력은 정말 뛰어난 편입니다. 신호 처리를 비롯해서 많은 분야에서 그래프를 사용하고 있고~ 그런 의미에서 MATLAB 은 정말 큰 장점이 있는 툴 인 것 같습니다.

MATLAB 에서 하나의 Figure 창에 다양한 그래프를 나타내기 위해서 아래 포스팅에서 소개했던~ subplot 과 같은 함수를 사용하곤 하는데~

https://iamaman.tistory.com/101

오늘은 axis 를 사용하여 그래프 안에 조그맣게 또 다른 그래프를 그리는 방법에 대해서 소개를 하려 합니다.

샘플 코드는 아래와 같습니다.

그래프 안에 조그만 또 다른 그래프를 그리기 위해서~ axes() 함수를 사용하여 작은 그래프가 들어갈 위치를 잡아주고~ 바깥에 있는 큰 그래프와 구분해 주기위해 box on 을 했습니다.

이후에 그래프를 그리면 아래 그림과 같이 그래프 안에 또 다른 작은 그래프가 들어가는 것을 확인할 수가 있습니다.



아래 포스팅에서 MATLAB 을 이용한 logscale 그래프 그리는 방법에 대해 설명 드렸습니다.

  

2013/01/29 - [programming language/MATLAB] - MATLAB 로그 스케일 그래프 그리기 semilogx(),semilogy(), loglog()

MATLAB 에서는 semilogx, semilogy, loglog 와 같은 함수를 사용하여 x, y 축에 대해 로그 스케일 그래프를 그리게 되는데요~

 

Scilab을 이용하여 2차원 평면에서 로그 스케일 그래프를 그릴때는 plot2d 함수를 사용합니다.

 

plot2d([logflag,][x,],y[,style[,strf[,leg[,rect[,nax]]]]])

 

위 plot2d 함수의 원형에서 logflagn 으로 설정하면 normal scale, l (소문자 L) 로 설정하면 log scale 입니다.

 

그래서 xy 축을 둘다 로그 스케일로 설정하고 싶다면 logflag 값을 ll 로 설정하고~

 

X 축은 log 스케일로 y 축은 normal scale 로 설정하고 싶다면 ln, x축은 normal scale, y 축은 log scale 로 설정하고 싶다면 nl 로 설정하면 됩니다.

 

그럼 간단하게 예제를 하나 그려 볼까요?

 

다음과 같은 데이터에 대해~

 

x= 0:0.1:10;

x_10=10.^x;

 

semilogx 예제는 다음과 같습니다.

 

figure()

subplot(211)

plot2d("nn",x_10, x)

xtitle("Normal scale", "x axis", "y axis");

 

subplot(212)

plot2d("ln",x_10, x)

xtitle("Semilogx", "x axis", "y axis");

 

 

semilogy 예제는 다음과 같습니다.

 

figure(1)

subplot(211)

plot2d("nn",x,x_10)

xtitle("Normal scale", "x axis", "y axis");

 

subplot(212)

plot2d("nl",x,x_10)

xtitle("Semilogy", "x axis", "y axis");

 

 

loglog예제는 다음과 같습니다.

 

figure()

subplot(211)

plot2d("nn",x_10, x_10)

xtitle("Normal scale", "x axis", "y axis");

 

subplot(212)

plot2d("ll",x_10, x_10)

xtitle("loglog", "x axis", "y axis");

 


오늘은 MATLAB subplot()에 대해 알아본다. subplot()은 하나의 figure 창에 여러 그래프를 표시 할 때 이용한다. 다음 예를 통해 subplot() 에 대해 설명한다.

 

x=1:5;

y=1:5;

y2=(1:5)*2;

 

figure, subplot(3, 2, 1), plot(x,y)

subplot(3, 2, 4), plot(x,y2,'r:.')

 

 

subplot(3, 2, 1) 에서 첫 번째 3은 그래프의 행의 개수를 의미하고, 두 번째 2는 그래프의 열의 개수를 의미한다. 세 번째 숫자 1은 위 그림에서 빨간색 글자로 표시한 1 부분에 그림을 넣겠다는 의미이다.

subplot(3, 2, 4)는 에서 세 번째 숫자 4는 위 그림의 4번 부분에 그래프를 넣겠다는 의미이다.

 

그럼 위 그림을 다른 방식으로 그려 보자.

 

figure, subplot(3, 2, [1 2]), plot(x,y)

subplot(3, 2, [4 6]), plot(x,y2,'r:.')

 

 

subplot(3, 2, [1 2]) 에서 [1 2] 라고 나타냈으므로 figure 창의 1번 2번 칸에 그림을 나타내겠다는 뜻이며 subplot(3, 2, [3 4])은 [3 4] 라고 나타냈으므로 figure 창의 3번 4번 칸에 그림을 나타내겠다는 뜻이다.

 

이상으로 subplot() 에 대한 설명을 마친다.


+ Recent posts