5. ĐỒ HỌ A2 CHIỀU TRONG MATLAB
5.4 Thao tác với đồ thị
Bạn có thể thêm nét vẽ vào đồ thị đã có sẵn bằng cách dùng lệnh hold. Khi bạn thiết lập hold on, MATLAB không bỏ đi hệ trục đã tồn tại trong khi lệnh plot mới đang thực hiện, thay vào đó, nó thêm dờng cong mới vào hệ trục hiện tại. Tuy nhiên nếu như dữ liệu không phù hợp với hệ trục toạ độ cũ, thì trục được chia lại . Thiết lập
hold off sẽ bỏ đi cửa sổ figure hiện tại và thay vào bằng một đồ thị mới. Lệnh hold mà
không có đối số sẽ bật tắt chức năng của chế độ thiết lập hold trước đó. Trở lại với ví dụ trước:
>> x = linspace(0,2*pi,30); >> y = sin(x);
>> z = cos(x); >> plot(x,y)
Bây giờ giữ nguyên đồ thị và thêm vào đường cosine
>> hold on %Giữ nguyên đồ thị đã vẽ lúc trước
>> ishold % hàm logic này trả về giá trị 1 (true) nếu hold ở trạng thái ON
ans = 1
>> plot(x,z,'m') >> hold off
>> ishold % hold bây giờ không còn ở trạng thái ON nữa.
ans = 0
Chú ý rằng để kiểm tra trạng thái của hold ta có thể dùng hàm ishold .
Nếu bạn muốn hai hay nhiều đồ thị ở các cửa sổ figure khác nhau, hãy dùng lệnh
figure trong cửa sổ lệnh hoặc chọn new figure từ bảng chọn file, figure không có tham số sẽ tạo một figure mới. Bạn có thể chọn kiểu figure bằng cách dùng chuột hoặc dùng lệnh figure(n) trong đó n là số cửa sổ hoạt hoạt động.
Mặt khác một cửa sổ figure có thể chứa nhiều hơn một hệ trục. Lệnh
subplot(m,n,p) chia cửa sổ hiện tại thành một ma trận mxn khoảng để vẽ đồ thị, và chọn p là cửa sổ hoạt động. Các đồ thị thành phần được đánh số từ trái qua phải, từ trên xuống dưới, sau đó đến hàng thứ hai .v.v. . .
Ví dụ: >> 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) % pick the upper left of % 2 by 2 grid of subplots >> plot(x,y),axis([0 2*pi -1 1]),title('sin(x)')
>> subplot(2,2,2) % pick the upper right of the 4 subplots
>> plot(x,z),axis([0 2*pi -1 1]),title('cos(x)') >> plot(x,z),axis([0 2*pi -1 1]),title('cos(x)')
>> subplot(2,2,3)% pick the lowwer left of the 4 subplots
>> plot(x,a),axis([0 2*pi -1 1]),title('2sin(x)cos(x)') >> subplot(2,2,4)%pick the lowwer right of the 4
subplots
>> plot(x,b),axis([0 2*pi -20 20]),title('sin(x)/cos(x)')