티스토리 뷰

Mathematics/MATLAB

1.3 MATLAB에서의 그래픽

그냥이 2008. 8. 18. 20:41

% * MATLAB에서의 그래픽
%
% * 2차원 그래픽
%  - 2차원 그래픽을 그리는 절차
%   (1) plot할 데이터를 준비한다
%   (2) 데이터를 plot할 그림 창을 선택하고 single graphic으로 할건지 multi graphic
%      으로 할건지를 선택한다.
%   (3) plot 함수를 호출한다.
%   (4) line이나 marker의 property를 선택한다.
%   (5) 축의 한계값, Grid line등을 설정한다.
%   (6) xlabel, legend, text 등으로 그래픽 객체에 라벨링을 한다.
%   (7) 그래픽 객체를 출력한다.
%
%  - 새로운 plot을 할 Figure를 생성
%   + Single-graphic 객체
%     >> figure(1)   -> Figure No. 1의 새로운 그림창을 생성한다.
%     >> figure(3)   -> Figure No. 3의 새로운 그림창을 생성한다.
%   + Multi-graphic 객체
%     >> subplot(m,n,i)
%  or >> subplot(mni)
%         -> 하나의 창에 m행 n열로 나누고 i번째에 그림을 활성화 시킨다.
%
%         subplot(221)     |     subplot(222)
%       -------------------+-----------------------
%         subplot(223)     |     subplot(224)
%
%  - plot 함수 호출      >>plot(x,y)
%   + line이나 marker의 property 선택
%     >> set(plot(x,y),'linestyle','--')
%   + 축의 한계값과 grid line 설정
%     >> axis([1 5 -0.5 0])    -> 범위 [x_min x_max y_min y_max]
%     >> grid on               -> 그리드를 설정한다. 해제는 grid off
%   + 그래픽 객체에 라벨링 한다.
%     >> xlabel('x')                -> x축에 'x'를 라벨링한다.
%     >> ylabel('y')                -> y축에 'y'를 라벨링한다.
%     >> title('Plotting x and y')  -> 제목을 붙인다.
%  - 기본적인 그래픽 함수들과 plot의 제어
%   + plot : x와 y축에 대해서 모두 선형 배율로 된 그래프를 그린다.
%   + loglog : x와 y축에 대해서 모두 log배율로 된 그래프를 그린다.
%   + semilogx : x축에 대해서는 log배율로 y축에대해서는 선형 배율로 된 그래플르 그린다.
%   + semilogy : x축에 대해서는 선형 배율로 y축에대해서는 log배율로 된 그래플르 그린다.
%   + plotyy : y축의 좌우에 값으로 라벨이 된 그래프를 그린다.
%  - 가능한 선의 color
%   + c : Cyan(011)
%   + m : Magenta(101)
%   + y : yellow(110)
%   + r : red(100)
%   + g : green(010)
%   + b : blue(001) -> default value
%   + w : white(111)
%   + k : black(000)
%  - 가능한 선의 style
%   + '-' : Solid line  -> default value
%   + '--' : Dashed line
%   + ':' : Dotted line
%   + '-.' : Dash-dot line
%   + 'none' : no line
%  - 가능한 선의 marker
%   + '+' : +(Plus sign)
%   + '^' : △(Upward pointing triangle)
%   + 'o' : ○(Circle)
%   + '*' : *(Astrisk)
%   + 'v' : ▽(Downward pointing triangle)
%   + '>' : ▷(Right pointing triangle)
%   + '<' : ◁(Left pointing triangle)
%   + '.' : .(Point)
%   + 'X' : ×(Cross)
%   + 'Square' : □(square)
%   + 'pentagram' : ☆(Five pointed star)
%   + 'hexagram' : *(Six pointed star)
%   + 'Diamond' : ◇(diamond)
%   + 'none' : No Marker -> default value


%  - 여러쌍의 데이터를 하나의 그림 창에 한꺼번에 그리기
%   + plot(x1,y1,'color+style+marker1',x2,y2,'color+style+marker2', ... )
%  (참고) 복소수 z=x+yi 형식으로 표현한다.
%   + isreal(x) : 실수인지 아닌지를 판별
%   + real(x) : 실수부 값을 출력
%   + imag : 허수부 값을 출력
%  - 이미 존재하는 그래프에 새로운 그래프 추가하기
%   + hold on : 그래프를 추가해서 그릴 수 있게 변환  (반대 >> hold off)
%  - 축의 Tick Mark 조정
%   + set(gca,'xtick',v) 또는 set(gca,'ytick',v)
%     -> x또는 y축의 tick mark를 변경 v는 벡터로써 각 축에 marking 할 데이터를 나타낸다.
%    ex) set(gca,'xtick',[-1.0 -0.5 0 0.5 1.0];
%
%  - 그래픽 객체의 라벨링 관련 함수
%   + title : 그래프의 제목을 더한다.
%   + xlabel : x축에 라벨을 더한다.
%   + ylabel : y축에 라벨을 더한다.
%   + zlabel : z축에 라벨을 더한다.
%   + legend : 그래프에 범례를 더한다.
%     ->  legend('문자열1','문자열2', ... ,'문자열n', 정수)
%     ->  정수는 위치를 나타낸다. [on/off]
%     location:
%        0 = Automatic "best" placement (least conflict with data)
%        1 = Upper right-hand corner (default)
%        2 = Upper left-hand corner
%        3 = Lower left-hand corner
%        4 = Lower right-hand corner
%       -1 = To the right of the plot
%   + text : 그래픽 개체의 임의의 위치에 문자열을 더한다.
%     ->  text(x좌표,y좌표,'문자열')
%     -> x,y좌표에 문자열을 프린트한다.
%     -> 3차원인 경우 x,y,z로 사용
%   + gtext : 마우스를 사용하여 그래픽 객체의 임의의 위치에 문자열을 더한다.
%     -> gtext('문자열')
%     -> 마우스로 클릭한 곳에 문자열이 출력된다.
%   + grid : 그래픽 객체에 격자를 더하거나 없앤다.[on off]
%     -> x축의 grid만 사용할 때  >>set(gca,'xgrid','on')
%
%  - 그래프에서 사용되는 특수문자(따로 첨부)

%
%  - 극좌표계의 plot
%   + polar(각도,반지름,'Color+Linestyle+marker')
%    -> 각조와 반지름을 이용하여 극좌표계에 좌표를 표현한다.
%   + polar(vector A)=polar(vector A,vector A)와 같다.
%
%  - 좌표계의 변환
%   + 직각좌표계->극좌표계
%    >> [각도,반지름]=cart2pol(x좌표,y좌표)
%    >> [각도,반지름,높이]=cart2pol(x,y,z)
%   + 극좌표계->직각좌표계
%    >> [x,y]=pol2cart(각도,반지름)
%    >> [x,y,z]=pol2cart(각도,반지름,높이)
%   + 직각좌표계->구좌표계
%    >> [φ,θ,반지름]=cart2sph(x,y,z)
%   + 구좌표계->직각좌표계
%    >> [x,y,z]=sph2cart(φ,θ,반지름)

%

%  - 마우스를 사용한 좌표 값 입력
%   + [x,y,button]=ginput(N)
%    -> 마우스로 클릭한 좌표의 값을 N번 받아서 x,y,button의 각 벡터 값으로 받는다.
%   button :
%    1 : 마우스 왼쪽 버튼
%    2 : 마우스 왼쪽과 오른쪽 버튼 동시
%    3 : 마우스 오른쪽 버튼
%

%  - 그래픽 객체를 파일로 저장하는 방법

%   >> print -f<handle> -device -options filename

%    -> device ??

%     + dmeta : 파일 확장자가 EMF인 Meta파일 형식으로 저장한다.

%     + dbitmap : 파일 확장자가 BMP인 Bitmap파일 형식으로 저장한다.

%     + dps : 파일 확장자가 PS인 흑백 프린터를 위한 postscript파일 형식으로 저장한다.

%              (흑백저장)

%     + dpsc : 파일 확장자가 PS인 칼라 프린터를 위한 postscript 파일 형식으로 저장한다.

%              (칼라로 저장)

%     + dps2 : 파일 확장자가 PS인 흑백 프린터를 위한 level 2 postscript파일 형식으로 저장함

%     + dpsc2 : 파일 확장자가 PS인 칼라 프린터를 위한 level 2 postscript파일 형식으로 저장

%     + deps : 파일 확장자가 EPS인 흑백 프린터를 위한 encapsulated postscipt파일

%                형식으로 저장 (흑백으로 저장)

%     + depsc : 파일 확장자가 EPS인 칼라 프린터를 위한 encapsulated postscipt파일

%                형식으로 저장 (칼라로 저장)

%     + depsc2 : 파일 확장자가 EPS인 칼라 프린터를 위한 Encapsilated level 2 postscript 파일

%                형식으로 저장한다.(칼라로 저장됨)

%     + dhpql : 파일 확장자가 HGL인 Hewlett-Packard 7475A 플로터를 위한 HPGL파일 형식으로

%                으로 저장

%     + dill : 파일 확장자가 AL인 Adobe Iillustor 88호환 파일 형식으로 저장한다.

%     + djpeg<nn> : 파일 확장자가 JPG인 JPEG파일 형식으로 저장한다.

%                       <nn>은 Jpeg파일의 질을 나타내는 것으로 0에서 100사이의 값을 가진다.

%     + dtiff : 파일 확장자가 TIF인 압축된 TIFF 파일 형식으로 저장한다.

%     + Dtiffnocompression : 파일 확장자가 TIF인 압축되지 않은 TIFF파일 형식으로 저장한다.

%     + dpng : 파일 확장자가 PNG인 portable Netwoprk Graphic 24-bit image파일 형식으로 저장

%     + dmfile : 저장할 그림 창을 다시 복원 할 MATLAB의 M-File과 MAT-file을 만든다.

%   - 그래픽 개체를 프린터로 출력하는 방법

%     (1) 현재 windows시스템에 설정된 기본 프린터로 현재 활성화되어 있는 그림창의 그래픽을

%        출력하는 경우 print

%     (2) device를 사용하여 프린터로의 출력을 제어하는 경우

%        print -f<handle> -device -options

%     (3) 그림 창의 File메뉴의 print관련 메뉴를 사용한다.

%   - 윤곽선 그래프

%     >> contour(x,y,N)      ->2차원

%     >> contour3(x,y,z,N)  ->3차원

%   - 면 그래프를 그리기 위한 그래픽 함수

%      + mesh, surf : 면 그리기

%      + meshc, surfc : contour(윤곽선, 등고선) 그리가 포함된 면 그리기

%      + meshz : curtain(막)그리기가 포함된 면 그리기

%      + pcolor : 평평한 면 그리기

%      + surfl : 임의의 관원을 가진 3차원 shade된 면 그리기

%      + surface : 면그리기(low-level function)

%   - 막대 그래프를 그리는 함수들

%      + 수직방향 : bar , bar3

%      + 수평방향 : barh, barh3

%   - 파이 차트 그리기

%      >> pie(y)

%      >> pie3(y)

%   - 히스토그램 그리기

%      + 직각좌표계에서의 데이터의 경우  >> hist(y)

%      + 극 좌표계에서의 데이터의 경우 >> rose(theta)

%   - 2차원 데이터의 stem plot의 경우

%      >> stem(x,t,'color+linestyle+marker')       ->2차원

%      >> stem3(x,y,z,'color+linestyle+marker')  -> 3차원

%   - 계단 그래프 그리기    >>stairs(x,y)

%   - 방향 및 속도 벡터 그래프 관련 함수들

%      + compass : polar plot의 원점으로부터 발산하는 벡터를 그린다.

%      + feather :  수평선을 따라 등 간격으로 분포된 점들로부터 연장하는 벡터를 그린다.

%      + quiver : (u,v)성분에 의해 정의되는 2차원 벡터를 그린다.

%      + quiver3 : (u,v,w)성분에 의해 정의되는 3차원 벡터를 그린다.

%   - 애니메이션

%      (1) movie를 사용하는 방법

%        axis equal

%        M=moviein(n);

%        for j=1:n

%           plot_command

%           M(:,j)=getframe;

%        end   

%        Movie(M)

%     (2) redraw와 erase를 사용하는 방법

%        p=erase_mode가 사용된 plot_command

%        hold on

%        axis를 사용한 축의 고정

%        for j=1:n

%           변화되는 점의 계산

%           set(p,'x',x,'y',y ...)

%           drawnow

%        end

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함