2011-07-13 30 views
42

thể trùng lặp:
MATLAB subplot marginLàm thế nào để giảm biên giới xung quanh các điểm phụ trong MATLAB?

Trong MATLAB, một số tiền inordinate gian là lãng phí khoảng subplots. Ví dụ, trong ví dụ này:

t = 0:0.001:2*pi+0.001; 
figure(2); 
for i = 1 : 25; 
    subplot(5,5,i); 
    plot(t, sin(i*t)); 
    axis off 
end 

Example of wasted white space in subplots

trên 50% không gian trên con số này là lãng phí như "trống" Tôi muốn thu nhỏ không gian trống xuống, nhưng đã không thành công để xác định một cơ chế để làm như vậy. Suy nghĩ?

Cảm ơn John

+2

đây là một danh sách các tài sản khác các giải pháp khả thi: [subplot chặt chẽ] (http://www.mathworks.com/matlabcentral/fileexchange/27991-tight-subplot), [jointfig.m] (http://www.mathworks.com/matlabcentral/fileexchange/304 -jointfig-m), [Một số thủ thuật Matlab để tạo số liệu] (http://nibot-lab.livejournal.com/73290.html), [Tiện ích nhỏ hữu ích] (http://groups.google.com/group/ comp.soft-sys.matlab/browse_thread/thread/5706e8dfbb4a418/f5154f1df6efaff4), [Giảm không gian màu xám xung quanh hình ảnh trong một hình] (http://www.mathworks.com/matlabcentral/answers/6254-reduce-grey-space- xung quanh hình ảnh-trong-một-con số) – Amro

Trả lời

45

Chức năng subaxis trên Trao đổi tệp cho phép bạn chỉ định lề cho các vị trí con.

sử dụng Ví dụ:

t = 0:0.001:2*pi+0.001; 
figure(2); 
for i = 1 : 25; 
    subaxis(5,5,i, 'Spacing', 0.03, 'Padding', 0, 'Margin', 0); 
    plot(t, sin(i*t)); 
    axis tight 
    axis off 
end 

enter image description here

6

Bạn có thể đặt chúng mình (hoặc programatically) sử dụng

subplot('Position',[left bottom width height]); 

Theo mặc định, các tọa độ được chuẩn hóa. Vì vậy, vị trí của [0,1 0,1 0,5 0,5] sẽ bắt đầu ở 10% trong cách ở từ góc dưới bên trái và sẽ có chiều rộng bằng đến một nửa chiều rộng hình và chiều cao bằng một nửa chiều cao hình .

Xem câu trả lời được chấp nhận cho giải pháp được xây dựng trong lề và lề.

4

Cố gắng giảm các giá trị mặc định trong các trục ẩn LooseInsets tài sản, như mô tả trong http://UndocumentedMatlab.com/blog/axes-looseinset-property/

Ví dụ:

set(gca, 'LooseInset', get(gca,'TightInset')) 
+0

Ít nhất trong ví dụ của tôi, điều này không có gì trên 2011a. – John

+0

không gian thêm được đưa lên bởi các trục X & Y ẩn đánh dấu nhãn, và tôi không tin rằng chúng có thể được loại bỏ. Nhưng bạn có thể cải thiện tình hình như sau: 'hình (2); cho i = 1: 25; hax = trục(); cốt truyện (t, sin (i * t)); trục chặt chẽ; trục tắt; rowIdx = fix ((i-1)/5); colIdx = mod (i-1,5); newPos = [. 2 * colIdx, 0,8-.2 * rowIdx, .2, .2]; set (gca, 'outer', newPos), end' –

+1

LooseInset có hoạt động với các subplots không? – roni

Các vấn đề liên quan