Tải bản đầy đủ (.docx) (16 trang)

Đồ họa trong MATLAB

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (878.63 KB, 16 trang )

A. Đồ thị hai chiều
1. Lệnh vẽ đồ thị trong mặt phẳng
Để vẽ đồ thị trong mặt phẳng, sử dụng lệnh plot
Ví dụ:
x=linspace(0,2*pi,30);
y=sin(x);
plot(x,y),title('Hinh 1')

% Vẽ 2 đồ thị cùng 1 hình
x=linspace(0,2*pi,30);
z=cos(x);
plot(x,y,x,z), title('Hinh 2')


% Vẽ 2 đồ thị cùng 1 hình, cách 2
x=linspace(0,2*pi,30);
W=[y;z];
plot(x,W), title('Hinh 3')
Ví dụ:
x=linspace(0,2*pi,30);
y=sin(x);
z=cos(x);
plot(x,y,'b:p',x,z,'r-',x,y+z,'m+'), title('Plot')
xlabel('Bien doc lap')
ylabel('Bien phu thuoc')
legend('y=sin(x)', 'z=cos(x)', 'y+z')
text(3,1,'Plot 3 charts')
axis equal % Tỉ lệ các trục bằng nhau
grid on % Hiển thị lưới



% Vẽ

nhiều đồ thị bằng nhiều lệnh plot kết hợp lệnh hold on
x=linspace(0,2*pi,30);
y=sin(x);
plot(x,y)
z=cos(x);
hold on
plot(x,z,'m')
3. Điều khiển cửa sổ figure


Vẽ nhiều đồ thị trên nhiều hình bằng các lệnh figure

figure % Cửa sổ hình thứ 1
x=linspace(0,2*pi,30);
y=sin(x);
plot(x,y)
figure % Cửa sổ hình thứ 2
z=cos(x);
hold on
plot(x,z,'m')




Vẽ nhiều đồ thị con trên một hình bằng các lệnh subplot

x=linspace(0,2*pi,30);
y=sin(x);

z=cos(x);
a=2*sin(x).*cos(x);
b=sin(x)./(cos(x)+eps);
subplot(2,2,1) % Chia cửa sổ thành 2 x 2 ô, vẽ ô 1
plot(x,y,'b'),axis([0 2*pi -1 1])
subplot(2,2,2) % Chia cửa sổ thành 2 x 2 ô, vẽ ô 2
plot(x,z,'r'),axis([0 2*pi -1 1])
subplot(2,2,3)
plot(x,a,'k'),axis([0 2*pi -1 1])
subplot(2,2,4)
plot(x,b,'g'),axis([0 2*pi -20 20])

B. Đồ thị ba chiều
1. Đồ thị đường
Để vẽ đồ thị 3D dạng đường, sử dụng lệnh: plot3(x1, y1, z1, S1, x2, y2,


z2, S2…)
Ví dụ:
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
xlabel('sin(t)'),ylabel('cos(t)'),zlabel('t') axis
square;
grid on;
text(0,0,0,'Origin')

Vẽ nhiều đường 3D trên cùng một đồ thị
x=linspace(0,3*pi);



z1=sin(x);
z2=sin(2*x);
z3=sin(3*x);
y1=zeros(size(x));
y3=ones(size(x));
y2=y3/2;
plot3(x,y1,z1,x,y2,z2,x,y3,z3)


xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis') grid on

Vẽ ma trận các dữ liệu
[X,Y] = meshgrid([-2:0.1:2]);


Z = X.*exp(-X.^2-Y.^2);
plot3(X,Y,Z)
xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis') grid on

2. Đồ thị dạng lưới
Để vẽ đồ thị 3D dạng lưới, sử dụng lệnh mesh(X,Y,Z)


Ví dụ:
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(X,Y,Z)
xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis') % hidden
off % Lệnh vẽ lưới trong suốt


meshc(X,Y,Z) % hiển thị đường mức


meshz(X,Y,Z) % hiển thị các đường x,y=const

3. Đồ thị 3D dạng mặt
Để vẽ đồ thị 3D dạng mặt, sử dụng lệnh surf(X,Y,Z)
Ví dụ:
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;


Z = sin(R)./R;
surf(X,Y,Z)

shading flat % Bỏ đường lưới
shading interp % Làm mịn màu

surfc(X,Y,Z) % Đồ thị mặt có các đường mức
surfl(X,Y,Z) % Đồ thị mặt có hiệu ứng ánh sáng
surfnorm(X,Y,Z) % Đồ thị mặt có pháp tuyến


[X,Y,Z] = peaks(30);
surfl(X,Y,Z)
shading interp
colormap pink

4. Đồ thị đường mức

Các cú pháp vẽ đồ thị đường mức:


contour(X,Y,Z,N) %Đồ thị đường mức 2 chiều
contour3(X,Y,Z,N) %Đồ thị đường mức 3 chiều
pcolor(X,Y,Z) %Đồ thị chuyển cao độ tỉ lệ với màu
contourf(X,Y,Z,N) %Đồ thị đường mức 2 chiều có màu
Ví dụ:
% Đường mức 2 chiều
[X,Y,Z] =peaks;
contour(X,Y,Z,20)

% Đường mức 3 chiều
[X,Y,Z] =peaks;
contour3(X,Y,Z,20)


% Đồ thị màu cao độ
pcolor(X,Y,Z)
shading interp
contourf(X,Y,Z,20)

% Vẽ đồ thị đường mức có thêm cao độ
C = contour(X,Y,Z,20); % tương tự cho contour3 và contourf
clabel(C)


5. Phổ màu đồ thị
Matlab cung cấp nhiều phổ màu đặc biệt
Ví dụ:

% Chọn 8 đoạn màu cho phổ màu hot
hot(8)
[x,y,z]=peaks;
mesh(x,y,z);
colormap(hsv)
axis([-3 3 -3 3 -6 8])
colorbar % hiển thị phổ màu


Sử dụng nhiều hơn một phổ màu
mymap=[hsv(32);copper(32)];


colormap(mymap)
mesh(peaks+8);
view(90,0)
hold on
mesh(peaks-8);
colorbar


C. Đồ thị động


Dùng lệnh pause để làm chậm tốc độ vẽ của chương trình. ∙ Nếu

cần thiết, dùng lệnh hold on để vẽ các đồ thị sau mà vẫn giữ được
các đồ thị trước.



Cú pháp: pause(n) % n: 0.01 giây

Ví dụ:
x=linspace(0,2*pi);
y=sin(x);
for i=1:100
plot(x(i),y(i),'*','markersize',10)
pause(0.2)
end
clear all
x=linspace(0,2*pi); y=sin(x);
for i=1:100
plot(x(i),y(i), '*','markersize',10) axis([0


2*pi+.2 -1.2 1.2])
hold on
pause(0.2)
end



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×