Dïng hµm Plot ®Ó vÏ ®iÓm §êng th¼ng trong mÆt ph¼ng §Ó vÏ c¸c ®êng trong mÆt ph¼ng,c¸c hµm sè phô thuéc vµo biÕn vÝ dô nh y=f(x) th× trong matlab cung cÊp cho ta hµm plot(x,y) ®Ó vÏ ,trong kh«ng gian ba chiÒu th× dïng hµm plot3(x,y,z) . tríc hÕt ta nãi qua vÒ c¸ch dïng hµm plot vµ c¸c vÝ dô minh ho¹ cô thÒ ®Ó hiÓu râ h¬n vÒ vÊn ®Ò nµy:
Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 Chơng Đồ hoạ Trong Matlab Điểm đờng đồ hoạ matlab Dùng hàm Plot để vẽ điểm -Đờng thẳng mặt phẳng Để vẽ đờng mặt phẳng,các hµm sè phơ thc vµo biÕn vÝ dơ nh y=f(x) matlab cung cấp cho ta hàm plot(x,y) để vẽ ,trong không gian ba chiều dùng hàm plot3(x,y,z) trớc hết ta nói qua cách dùng hàm plot ví dụ minh hoạ cụ thề để hiểu rõ vấn đề này: 4.1.1 Lệnh plot Syntax plot(Y) plot(X1,Y1, ) plot(X1,Y1,LineSpec, ) plot( ,'PropertyName',PropertyValue, ) h = plot( ) Mô tả: Hàm plot có nhiều cách dùng nh bạn đà thấy plot(y): Hàm ®Ĩ biĨu diƠn c¸c cét cđa y theo c¸c chØ số tơng ứng chúng y ma trận số thực, y số phức plot(y) t¬ng øng víi plot(real(y),image(y)) Ta cã thĨ lÊy vÝ dơ sau: A=[1 45 78 9] plot(A) sÏ đợc kết nh sau(giao điểm ký hiệu dấu o trßn ) Trang Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 Các dấu tròn hình vẽ thể giao điểm phần tử cột số tơng ứng chúng cột Cụ thể giao điểm (1,1) (2,1);(3,1) tơng ứng phần tử thứ cột,do phần tử thứ có số plot(x,y ): Vẽ đờng thẳng tơng ứng với cặp điểm (x,y )của véc tơ x vec tơ y.Nếu x y ma trận vẽ theo vector cột hàng tơng ứng với vector lại phù hợp với kích thớc hàng hay cột matrận Cụ thể : Giả thử x: vector cot x=[1 3]; vµ y lµ martrËn y=[1 3;4 6]; râ rµng lµ x cã kÝch thíc b»ng víi kÝch thíc hµng cđa matrËn vËy mµ nã sÏ biĨu diƠn hàng y theo x Kết plot(x,y) nh sau: plot(x,y,linespec ) cịng cã thĨ viÕt nh sau plot(x,y,linespec,x1,y1,linespec1, ); Hàm giống nh hàm ,nhng thuộc tính đờng đợc thể linespec Sau ta liệt kê thuộc tính ®êng Matlab cho phÐp b¹n sư dơng mét sè ký tự sau để xác định thuộc tính đờng Trang Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 • Line style • Line width • Color • Marker type • Marker size • Marker face and edge coloring (for filled markers) Matlab định nghĩa chuỗi xác định cho kiểu đờng, Marker types colors Line Style Specifiers Specifier Line Style - ®êng liỊn(default) ®êng nÐt ®øt : dotted line - dash-dot line Marker Specifiers Specifier Marker Type + plus sign O Circle * Asterisk Point X Cross S Square Trang Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 D Diamond ^ upward pointing triangle V downward pointing triangle > right pointing triangle < left pointing triangle P five-pointed star (pentagram) H six-pointed star (hexagram) Color Specifiers Specifier Color R Red G Green B Blue C Cyan M Magenta Y Yellow K Black W White Các lệnh plot chấp nhận thông số Linespec ,thông số định nghĩa ba phần tử ,các phần tử xác định đờng Trang Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 ã Line style (kiểu đờng) ã Marker symbol (Kiểu đánh dấu) ã Color (kiểu mầu) Chó ý r»ng kÕt hỵp chóng ta cã thĨ ®Ó theo mét thø tù bÊt kú For example plot(x,y,'-.or') Vẽ y theo x sử dụng kiểu đờng dash-dot đặt vòng tròn(o) giao điểm (x,y) ,và mầu đờng mầu vòng tròn đánh dấu mầu đỏ Nếu bạn xác định điểm đánh dấu, kiểu đờng, Matlab vẽ điểm đánh dấu I Ví dụ plot(x,y,'d') 4.1.2 Hàm plot(x,y, protypename,protypevalue ) Hàm xác định rõ thuộc tính ®êng th¼ng vÝ dơ nh ChiỊu réng cđa ®êng th¼ng LineStyle {-} | | : | - | none Độ rộng đờng(Linewith) mặc định o.5 points( 1point=1/72 inch) VÝ dơ vỊ Linepropertype: plot(t,sin(2*t),'-mo', 'LineWidth',2, 'MarkerEdgeColor','b', 'MarkerFaceColor',r, 'MarkerSize',12) Giải thích nh sau: Hàm vẽ đồ thị f=sin(2*t) theo biến t, đặc tính đờng mầu (magne) ,giao hai điểm hình tròn(s), đờng liên tục(solid line) Line width 2(point) ( 1point=1/72 inches) default 0.5 points MarkerEdgeColor mầu đen( blue) Mỗu (mặt) điểm nút giao mầu đỏ: Trang Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 Chúng ta thấy đồ thị đợc xây dựng từ việc nối điểm có toạ độ (x,y) đoạn thẳng *tỷ lệ trục đợc matlab tự động tạo cho phù hợp 4.1.3 Để vẽ nhiều đồ thị hình vẽ có hai cách +Vẽ đồ thị thứ + Dùng lệnh Hold on +Vẽ tiếp đồ thị thứ hai + hold of Dùng hàm plot(x1,y1,x2,y2) Ví dơ ta vÏ hai hµm y=sin(x) vµ y1=cos(x) Ta dïng lÖnh plot nh sau: plot(x,y,x,y1); 4.1.4 Title , xlabel, ylabel, gtext, legend, grid Title dùng để viết tiêu đề cho ®å thÞ VÝ dơ Title( ) Xlabel( string) đặt tên nhÃn cho trục x Ylabel(string) đặt tên nhÃn cho trục y Gtext(string) để viết text vào đồ thị Legend(string,-1) để ghi thích cho đồ thị, số -1 để ghi thích bên trục hình vẽ Grid on Grid of để mở t¾t Grid t=0:pi/6:pi; plot(t,sin(2*t),'-mo', 'LineWidth',2, 'MarkerEdgeColor','b', 'MarkerFaceColor','r', 'MarkerSize',14) legend('y=sin(2*t)','y=cos(2*t)',-1);( chó ý viÕt ®óng thø tù) grid on; xlabel('truc thoi gian'); ylabel('truc Sin va cos'); title('Do thi ham sin(2*t)'); hold on; Trang Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 j=cos(2*t); plot(t,j,'-b+'); hold off; 4.2 Hµm plot3(x,y,z) để vẽ điểm đờng không gian Ngoài việc thêm trục z hàm sử dụng giống nh hµm plot(x,y) CÊu tróc plot3(X1,Y1,Z1, ) plot3(X1,Y1,Z1,LineSpec, ) plot3( ,'PropertyName',PropertyValue, ) h = plot3( ) ViƯc sư dơng c¸c hµm nµy gièng víi hµm Plot 2D vËy ta không đề cập tới Chú ý tới hàm View(a,b) để quan sát góc nhìn đồ thị a góc tính theo chiều ngợc chiều kim đồng hồ từ phía âm trục y b góc nhìn tính bắng độ xuống mặt phẳng x,y Giá trị mặc định a b -37.5 vµ 30 %VÝ dơ %Plot a three-dimensional helix % Vẽ mặt phẳng x= sin(t) ,y=cos(t) , z=t t = 0:pi/50:10*pi; plot3(sin(t),cos(t),t) grid on; axis square view(-80,30); xÐt hai trêng hợp view(-80,30); view(-40,30); Khi cho a=0 b=90 hình vẽ trở hình vẽ mặt phẳng toạ độ hai chiỊu 4.3 Hµm semilogx, semilogy Trang Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 Semi-logarithmic plots CÊu tróc semilogx(Y) semilogx(X1,Y1, ) semilogx(X1,Y1,LineSpec, ) semilogx( ,'PropertyName',PropertyValue, ) h = semilogx( ) semilogy( ) h = semilogy( ) Mô tả Semilogx(y) vÏ gièng nh plot(y) nhng chØ kh¸c r»ng tû lệ trục x logarit số 10, tơng tự nh Semilogy(y) tỷ lệ trơc y theo logarit c¬ sè 10 øng víi truc x X=0:10:1000; Y=100*x; Subplot(2,2,1); Semilogx(x,y,'.'); Xlabel('log'); Ylabel('tuyen tinh'); Title(' subplot(2,2, 2); semilogy(x,y ,'.'); xlabel('tuyen tinh'); subplot(2, 2,3); loglog(x,y ,'.'); xlabel('log '); ylabel('log semilogx(x,y)'); Grid on; Trong kh«ng gian chiỊu ta không dùng hàm để subplot(2 ,2,4); plot(x,y,' '); xlabel('tu yen tinh'); ylabel('tu vÏ ,mµ ta sư dụng hàm plot3 dùng hàm set để đặt trục toạ độ t=1:1:100; x=sin(20*pi*t); y=cos(20*pi*t); z=t; subplot(1,2,1); plot3(x,y,z); set(gca,'Zscale','log');grid on;view(125,7); 4.4 Vẽ hệ toạ độ cực Cấu trúc polar(theta,rho) polar(theta,rho,LineSpec) Trang Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 Mô tả The polar function accepts polar coordinates, plots them in a Cartesian plane, and draws the polar grid on the plane polar(theta,rho) creates a polar coordinate plot of the angle theta versus the radius rho theta is the angle from the x-axis to the radius vector specified in radians; rho is the length of the radius vector specified in dataspace units polar(theta,rho,LineSpec) LineSpec specifies the line type, plot symbol, and color for the lines drawn in the polar plot Examples Create a simple polar plot using a dashed, red line: t = 0:.01:2*pi; polar(t,sin(2*t).*cos(2*t),' r') this is a figure for plotting Polar(phi, r); Khi chuyển từ hệ toạ độ cực sang hệ toạ độ Đêcart ta làm nh sau [x,y]=pol2cart(phi, r) sau ®ã dïng lƯnh Plot(x,y) t = 0:.01:2*pi; h=sin(2*t).*cos(2*t); [x,y]=pol2cart(t,h); axis(equal) plot(x,y);grid on; notice : command Axis(‘equal’) set unit which is divided in X and Y axis §èi với hệ toạ độ cầu Trong Matlab hàm ®Ĩ vÏ nhiªn ta cã thĨ chun ®ỉi tõ hệ toạ độ cầu thành hệ toạ độ ĐềCart không gian [x,y,z]=sph2cart(theta,phi,r) sau dùng hàm vẽ không gian plot3(x,y,z) 4.5 Đồ thị cột bar, barh Cấu tróc bar(Y) bar(x,Y) bar( ,width) bar( ,'style') Trang Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 bar( ,LineSpec) II M« tả Vẽ biểu đồ giá trị véc tor Matrận nh ngang thẳng đứng bar(Y) vẽ đồ thị cột cho phần tư Y NÕu Y lµ mét ma trËn ,bar nhóm đợc tạo phần tử hàng Tỷ lệ trục x từ to length(Y) Y vector, đến size(Y,1), ®ã chÝnh lµ sè hµng , Y lµ mét ma trận bar(x,Y) vẽ đồ thị cột cho phần tử Y vị trí xác định x, x vector tăng định nghĩa khoảng cho cột thẳng đứng Nếu Y ma trận, bar gộp cột tơng ứng hàng Y vị trí tơng ứng với phần tử x bar( ,width) hàm giống hàm nhng có thêm đặc tính đặt độ rộng cột.Giá trị mặc định width 0.8, Nếu width is 1, cột nhóm chạm vào bar( ,'style') Xác định kiểu cột 'style' 'group' 'stack' 'group' chế độ mặc định ã 'group' biểu diễn n nhóm m cột thẳng đứng ,ở n số hàng m số cột Y ã 'stack' Biểu diễn đồ thị cột cho hàng Y Chiều cao cột tổng phần tử hàng bar( ,LineSpec) displays all bars using the color specified by LineSpec VÝ dô Plot a bell shaped curve: x = -2.9:0.2:2.9; bar(x,exp(-x.*x)) colormap hsv Trang 10 Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 Tơng tự đồ thị cột không gian lệnh giữ nguyên nhng thay bar ta thay lệnh bar3(x,y,z) 4.6 Đồ thị bánh (Pie) Cấu trúc: pie( x ) :Hàm vẽ đồ thị bánh với 'khoanh' đợc xác định phần trăm giá trị vector x vÝ dô x=[ 4] phân thành khoanh toàn vòng tròn ,mỗi khoanh tơng ứng phần trăm phần tử x >>x=[ 4]; >>pie(x) cho đồ thị nh sau: Đỉnh cao ứng với phần tử véc tor ,các phần tử đợc bố trí theo chiều ngợc chiều kim đồng hồ Nếu tổng phần tử vec tor x > x=[ 0.1 0.2 0.3 ] % t¬ng øng víi 10% 20% 30% Trang 11 Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 >>pie(x); Trang 12 ... 'khoanh' đợc xác định phần trăm giá trị vector x ví dụ x=[ 4] phân thành khoanh toàn vòng tròn ,mỗi khoanh tơng ứng phần trăm phần tử x >>x=[ 4] ; >>pie(x) cho đồ thị nh sau: Đỉnh cao ứng với phần... 'MarkerSize', 14) legend('y=sin(2*t)','y=cos(2*t)',-1);( chó ý viÕt ®óng thø tù) grid on; xlabel('truc thoi gian'); ylabel('truc Sin va cos'); title( 'Do thi ham sin(2*t)'); hold on; Trang Tungvn40@yahoo.com... view(-80,30); xÐt hai trêng hỵp view(-80,30); view( -40 ,30); Khi cho a=0 b=90 hình vẽ trở hình vẽ mặt phẳng toạ độ hai chiều 4. 3 Hàm semilogx, semilogy Trang Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 Semi-logarithmic