2013-03-21 14 views
15

Trong hình Matlab, tôi chỉ muốn loại bỏ các dấu tích từ các trục trên cùng và bên phải bằng cách giữ hộp đồ thị.matlab chỉ xóa các dấu trên cùng và phải bằng cách rời khỏi ô trên

Tôi biết nếu tôi tắt hộp cốt truyện, các dấu tích ở trên cùng và bên phải sẽ biến mất. Nhưng, đây không phải là điều tôi muốn. Nói cách khác, tôi muốn giữ cho ve chỉ ở phía dưới và bên trái và, đồng thời, muốn giữ hộp âm mưu trên.

+2

Đây là một trong những điều mà bạn chỉ đơn giản là không thể làm độc đáo. Bạn phải nghỉ mát để lừa. Nếu bạn đang cố gắng để có được hai trục với nhau với trục x liên kết và hai trục y riêng biệt trên cả hai mặt, cách tiếp cận dễ nhất là đặt cả hai trục thành 'hộp off'. Sau đó di chuyển x-rìu của trục thứ hai lên trên cùng, loại bỏ dấu tick và nhãn trục và nó sẽ đóng hình ảnh một cách độc đáo. –

+0

Điều đó đã hiệu quả. Cảm ơn! Tôi không thể chỉnh sửa mã độc đáo ở đây, nhưng tôi đặt mã bên dưới. hình lw = 2; x = 0: 5: 10; lô (x, x) a1 = gca; set (a1, 'box', 'off', 'tickdir', 'out', 'xticklabel', {}, 'yticklabel', {}, ... 'linewidth', lw, 'Xtick', [ 0: 5: 10], 'ytick', [0: 5: 10]) trục vuông a2 = copyobj (a1, gcf); đặt (a2, 'màu', 'không', 'xaxislocation', 'trên cùng', 'yaxislocation', 'phải', 'xtick', [], 'ytick', []) –

Trả lời

9

workaround của tôi tương tự như @j_kubik đề xuất:

plot(1:10) 
% get handle to current axes 
a = gca; 
% set box property to off and remove background color 
set(a,'box','off','color','none') 
% create new, empty axes with box but without ticks 
b = axes('Position',get(a,'Position'),'box','on','xtick',[],'ytick',[]); 
% set original axes as active 
axes(a) 
% link axes in case of zooming 
linkaxes([a b]) 
+0

Tôi không biết về liên kết. Đó là một sự cải tiến. Cảm ơn!! –

+0

Cập nhật: cho người dùng của Matlab năm 2014 trở lên, thay thế 'linkaxes' bằng' linkprop' –

+0

@CarlWitthoft Tôi nghĩ 'linkaxes' vẫn hợp lệ trong năm 2014+. Việc gọi 'linkprop ([a b])' sẽ gây ra lỗi – Delyle

1

Bạn có thể sử dụng box off để xóa bọ ve và sau đó vẽ lại hộp bằng cách sử dụng ô. Ví dụ:

figure 
hold on 
box off 
plot(1:10) 
plot([1,10],[10, 10],'k') 
plot([10,10],[1,10],'k') 
+0

Cảm ơn đề xuất. Tôi đã thử điều đó. Nhưng, nó không hoạt động tốt như tôi mong muốn. Khi tôi đặt độ rộng của đường kẻ dày hơn, giả sử 3, thì các đường được vẽ trên đầu và bên phải (các đường được vẽ bằng lô) trông mỏng hơn các trục (các đường có trái và dưới), mặc dù tôi sử dụng cùng chiều rộng đường cho hộp được vẽ bằng cốt truyện và trục. –