Matlab Graphics
1.Graphics Object (a) figure object (b) Axes object
(c) Line object (d) Patch object
(e) Surface object (g) Image object
(g) Text (h) Uicontrol object
2. 계층조직 1)matlab 그래프들은객체들의조합 2) 객체들은계층도에의해분류 3) 상위객체는하위객체들을제어 4) 객체들은같은 level의객체들을소유
* handle 이란? 3. Handle Graphics - 각각의 matlab 그래프함수가객체들을제어할수있도록새로만들어지는객체마다고유한숫자를반환하는데이들고유한숫자를말함. h_fig=figure h_fig= 1 새로생성된 figure
numbertitle 이 Figure No.1 Figure No.1 - numbertitle numbertitle - 주어진 figure 의 propertyname Figure No.1 - 주어진 figure 의 propertyvalue
set.m 함수 - handle 을이용하여각각의객체성질 (propertyname) 을조정 전형적인사용법 : set.m set(handle, propertyname, propertyvalue) 주어진 handle에해당하는객체의 propertyname을새로운 propertyvalue로고쳐준다.
get.m 함수 -handle을이용하여해당객체의성질에할당된값 (propertyvalue) 을얻게해줌전형적인사용법 :get.m propertyvalue=get(handle, propertyname) 주어진 haandle에해당하는객체의 propertyname에대한 propertyvalue를얻는다.
numbertitle 이 Figure No.1 가. propertyname 인 numbertitle 을없애기위해서 propertyvalue 에 off 를할당 나. 새로운이름을할당하기위새서 propertyname 인 :name 에대한 propertyvalue 에 By Blim Jong_Su 를할당
set.m 함수의이용 set(h_fig1, numbertitle, off, name, By Lim Jong_Su )
get.m 함수의이용 h_size=get(h_fig1, position ) h_size = 189 304 390 246
Matlab graphics Low_level function : text.m High_level function : plot.m axis.m
1. text.m Syntax text_handle=text(x,y,z,'string') text_handle=text(x,y,z,'propertyname','pr opertyvalue') 특수 symbol을이용하는방법 특수문자 : Latex문자체계 text object 의 interpreter 가 tex" 인경우
2. text.m ex3 t=0:900; plot(t,.25*exp(-.005*t)) h=text(300,.25*exp(-.005*300),... bullet leftarrow fontname{times}0.25{ ite}^{-0.005{ itt}}.at { itt}=300');
< 특수 symbol 사용법 >
Font 의종류 \bf \it \sl \rm \fontname{fontname} 3 text.m 주어진 font 에대한설명 Bold font Italics font Oblique font Normal font 위에주어진 font 외의다른 font 특수문자지정어들은 { } 으로구분 아래첨자는 _, 윗첨자는 ^, {, }, _, ^ 문자들은앞에 을첨가하면 display
ex1 get(h,'interpreter') ans = tex ex2 4 text.m set(h,'interpreter','none')
< 특수문자표 > (Latex 문자 )
Propertyname HorizontalAlignment VerticalAlignment 5 text.m Text object Propertyvalue {left} center right Top cap {middle} baseline bottom
6 text.m Matlab 명령어 Zoom on Zoom off Zoom xon Zoom yon Zoom out 해당명령어의설명 확대시키고싶은영역에서 mouse 의왼쪽버튼을 click 하면화면이확대, 오른쪽버튼을 click 하면축소 zoom 기능을없앤다 X 축에대해서만확대 Y 축에대해서만확대 원래의 figure 로돌아감
7 text.m ex4 t=0:pi/100:2*pi; y=sin(t); plot(t,y) xlabel('t=0 to 2\pi','fontsize',16) ylabel('sin(t)','fontsize',16) title( \it{value of the Sine from Zero to Two Pi}') set(gcf,'color','w') text(3*pi/4,sin(3*pi/4), \bullet\leftarrowsin(t)=0.7 07') set(gca,'nextplot','add') plot(3*pi/4,sin(3*pi/4),'ro') text(pi,sin(pi), \leftarrowsin(t)=0') text(5*pi/4,sin(5*pi/4),... 'sin(t)=-0.707 rightarrow','horizontalalignment','right') set(gca,'nextplot','replace')
< 문자열의정렬방법 >
8 text.m figure Object, Axes Object처럼상위 Level의 default property value 를 바꾸었다면, set(gca,'nextplot,'replace') 와 같이, 다시 default propertyvalue로환원 환원해주지않으면, 앞으로만들어지는모든 Axes Object의하위 Level과같은 Axes level의함수들은 동일한화면에그림들을그려주기때문
High_level function High_level function 데이터를화면에 display하기위해사용되는함수 Low_level functions처럼데이터를 display하는데, 필요한여러가지 propertyname /propertyvalue를묻지않고, 자동으로좌표의크기조절 (axis scaling) 과선의색 (Line color) 등을설정
Syntax 1 Plot.m plot(y) plot(x1,y1,...) plot(x1,y1,linespec,...) plot(...,'propertyname',propertyvalue,...) h = plot(...)
2 Plot.m Ex5 X=(1:10; 0.7*[1:10]; 0.5*[1:10]; 0.25*[1:10])'; plot(x) xlabel('x axis','fontsize',15) ylabel('y axis','fontsize',15) title( bf{''plot.m'' 함수의이용법 }','fontsize',15)
2 Plot.m Ex5 X=(1:10; 0.7*[1:10]; 0.5*[1:10]; 0.25*[1:10])'; plot(x) xlabel('x axis','fontsize',15) ylabel('y axis','fontsize',15) title( bf{''plot.m'' 함수의이용법 }','fontsize',15)
Ex6 3 Plot.m Line_Color =get(gca,'colororder') Line_Color = 0 0 1.0000 0 0.5000 0 1.0000 0 0 0 0.7500 0.7500 0.7500 0 0.7500 0.7500 0.7500 0 0.2500 0.2500 0.2500 Ex7 Line_Type =get(gca,'linestyleorder') Line_Type = -
Ex8 4 Plot.m set(0, 'DefaultAxesColororder, [0 0 0], 'DefaultAxesLineStyleOrder, '- -. -- :')
1 Axis.m syntax axis([xmin xmax ymin ymax zmin zmax]) ex9 t=-5:1/100:5; y=1./((t-0.3).^2+0.01)+1./((t-0.9).^2+0.04)- 6; %y는 humps function. plot(t,y)
< axis.m 함수사용의예 >
Ex10 2 Axis.m axis([0 inf -inf inf]) set(gca,'xlim',[0 inf],'ylim',[-inf inf])
Propertyname Xtick, ytick, ztick 3 Axis.m Axes object Propertyvalue Tick mark 를위치시킬수있는수치 vector Ex11 set(gca,'xtick',[0:0.4:2 2.5 3 3.5 4 4.5 5])
< Tick 의위치변경방법 >
Propertyname Xticklabel, yticklabel, zticklabel Ex12 4 Axis.m t_label=str2mat('i','ii','iii','iv','v','vi','vii','viii', 'IX','X','XI','XII') Axes object Propertyvalue set(gca,'xticklabel',t_label) Tick mark 의위치에놓을문자열 (string)
< xticklable 의변경방법 >
Grid xgrid, ygrid, zgrid gridlinestyle grid on grid off hold on hold off
Grid 의예 t=0:1/1000:1; beta=200; alpha=20; y=exp(-alpha*t).*sin(beta*t); plot(t,y) xlabel('\bf{time[msec]}','fontsize',12) ylabel('\bf{amplitude}','fontsize',12) title('\{bf{\ite}exp^{\alphat}sin(\betat)\alpha<</\beta}...,'fontsize',12) set(gcf,'color',w')
x 축에만 grid 를첨가 set(gca,'xgrid','on','gridlinestyle','-')
plot3.m t=0:.1:10*pi; x=exp(-t/20).*cos(t); y=exp(-t/20).*sin(t); z=t; plot3(x,y,z) grid on xlabel('x'); ylabel('y'); zlabel('z'); title('\bf'{'plot3.m',funtion의이용법!}','fontsize',12) set(gcf,'color','w')
xlabel.m, ylabel.m, zlabel.m- text object Text object에서 Rotation - Degree의단위로문자의방향을결정예 ) rotation h=zlabel( z ); set(h, rotation,180); Axes object - Box on or Box off 예 ) box set(gca, box, on );
contour.m 3차원데이타에대한등고선사용방법 [c, h]=contour(z) [c, h]=contour(z, n) [c, h]=contour(z, v) [c, h]=contour(x, y, z) [c, h]=contour(..., LineSpec)
contour.m 의예 z =peaks; %matlab이제공하는 sample함수 [c, h]=contour(z); set(gcf, color, w ) title( \bf{ contour.m 함수의사용법! }, fontsize,12)
[c, h]=contour(z, 5)
clabel.m 사용방법 clabel(c, v) clabel(c, h, manual ) 예 ) clabel.m con_hndl=clabel(c, h, manual );
contour3.m 사용방법 [c, h]=contour3(z) [c,h]=contour3(z, n) [c, h]=contour3(z, v) [c, h]=contour3(x, y, z) [c,h]=contour3(..., LineSpec) surf.m - EdgeColor, FaceColor
contour3.m 의예 [X,Y]=meshgrid([-2:.25:2]); Z=X.*exp(X.^2-Y.^2); contour3(x,y,z,30) hold on h=surf(x,y,z); set(h,'edgecolor',[.8.8.8], 'facecolor', 'none') hold off grid off view(-15,25) % 방위각 :-15, 고도 :25 colormap cool set(gcf,'color','w') xlabel('x'); ylabel('y'); zlabel('z'); title('\bf{''contour3.m''funtion의,. 이용법 } ','fontsize', 12)