獨斷論

간단한 그래프 그리기 (Matlab 사용법 3) 본문

과학과 기술/Matlab

간단한 그래프 그리기 (Matlab 사용법 3)

부르칸 2015. 3. 18. 03:05

간단한 그래프 그리기 (Matlab 사용설명서 3)

Matlab에서 제공하는 그래프 그리는 기능 중에 간단한 plot() 함수만 알아보자.



Line plots

가장 많이 사용하는 것은 line plots인데 plot()를 이용한다. 

sine 함수를 그려보면

우선 x값으로 0에서 2pi까지 100개로 나누고

각각의 x값에 대해 y sin(x)를 대입하고

세로축을 y로, 가로축을 x로 그리면 된다. 

>> x = 0:pi/100:2*pi;
>> y = sin(x);
>> plot(x,y)

위와 같이 하면 아래와 같은 그래프가 얻어진다.


그래프가 뭔가 좀 허전한데

x축의 label과 y의 label과 그래프 이름이 없다.

아래와 같이 수행하면 그래프가 허전하지 않을 것이다.


그래프의 선의 색을 빨갛게 하고 선의 형태를 점선으로 바꾸고자 한다면 아래와 같이 한다.

>> plot(x, y, 'r--')

그러면 아래와 같이 그래프가 만들어지는데

위 명령어에서 r은 red 즉 빨간색으로 그리라는 것이고 --은 실선이 아니라 점선으로 그리라는 말이다. 



어라 앞에서 그렸던 파란색이 없어졌다고 생각하시는 분들을 위하여.. ㅋㅋ

만약 그래프 하나를 그린 사상태에서 그 위에 다른 그래프를 다시 또 그리고 싶을때는 hold on 명령을 이용한다.

>> x = 0:pi/100:2*pi;
>> y1 = sin(x);
>> y2 = cos(x);
>> plot(x, y1)
>> hold on
>> plot(x, y2, 'r:')
>> legend('sin', 'cos')

위에서 보는 것처럼 plot(x, y1)을 한 뒤에 hold on을 하여 plot(x, y2)를 새롭게 그리지 않고 앞서 그린 그래프 위에 다시 그리게하였다.

또한 어떤 그래프그 cosine이고 sine인지 구분하기 위하여 legend()명령어를 사용하였다. 먼저 그린 순서대로 legend를 써 넣으면 된다. 


만약 새로운 그래프를 다시 그리고 싶다면 hold off를 사용하면 된다. 


3차원 plots

3차원 plot은 z=f(x,y)의 형태의 그래프를 그리는 것이다. 그래프를 그리기전에 x y의 가능한 모든 조합을 가지고 z를 계산해야하기때문에 meshgrid라는 함수를 이용하여 x, y의 조합을 구한다.

>> [X, Y] = meshgrid(-2:0.2:2);
>> Z = exp(-X.^2 - Y.^2);
>> surf(X, Y, Z)

첫번째 명령어에서 -2에서 2까지 0.2 간격으로 모든 숫자에 대해서 (x,y)를 만들어 X와 Y에 저장하였다.

두번째 명령어에서 그리고자 하는 함수를 계산하고

위 3개의 변수를 가지고 surf()함수를 사용하여 그래프를 그리면 아래와 같다. 


Subplots 그리기

subplot이란 하나의 그래프 윈도우에 여러개의 그래프를 그리는 것을 말한다.

subplot(a,b,c)의 형식으로 그래프의 위치를 설정하는데 a는 그리고자 하는 그래프 격자의 행의 갯수이고 b는 그리고자하는 그래프 격자의 열의 갯수이며 c는 그래프 격자에서 몇번째 그래프인지를 나타낸다. 뭔소리냐하면 아래 명령어를 실행해보면 안다.

>> x = 0:pi/100:2*pi;
>> y1 = sin(x);
>> y2 = cos(x);
>> y3 = sinh(x);
>> y4 = cosh(x);
>> subplot(2,2,1), plot(x, y1), title('sine graph')
>> subplot(2,2,2), plot(x, y2), title('cosine graph')
>> subplot(2,2,3), plot(x, y3), title('hyperbolic sine graph')
>> subplot(2,2,4), plot(x, y4), title('hyperbolic cosine graph')

위 명령어를 수행하면 아래와 같은 그래프가 얻어진다.

subplot(2,2,1)은 그래프 2x2 격자가운데 첫번째 것이라는 뜻이고

subplot(2,2,3)은 그래프 2x2 격자가운데 세번째것이라는 뜻이므로 2x2격자에서 (2,1)의 위치에 그려졌다. c의 순서는 세로방향이 아니라 가로방향이라는 것도 유의한다.



Comments