2011-07-13 24 views
42

Olası Yinelenen:
MATLAB subplot marginMatlabdaki alt piksellerin etrafındaki sınırlar nasıl azaltılır?

Matlab olarak

, alan bir aşırı miktarı subplots çevresinde israf edilmektedir. Örneğin, bu örnekte: rakamın üzerine alan

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

50 üzerinde% olarak boşa Sana, şu boşluk küçültmek için "boş" isteriz, ancak başarısız olmuştur Bunu yapmak için bir mekanizma tanımlamak. Düşünceler?

Teşekkür John

+2

diğer olasılıkların listesi ible çözümleri: [sıkı altbölüm] (http://www.mathworks.com/matlabcentral/fileexchange/27991-tight-subplot), [jointfig.m] (http://www.mathworks.com/matlabcentral/fileexchange/304 -jointfig-m), [Rakamlar yapmak için bazı Matlab numaraları] (http://nibot-lab.livejournal.com/73290.html), [Yararlı küçük yardımcı program] (http://groups.google.com/group/ comp.soft-sys.matlab/browse_thread/thread/5706e8dfbb4a418/f5154f1df6efaff4), [Bir Şekildeki Resimlerin etrafındaki Gri Boşluğu Azalt] (http://www.mathworks.com/matlabcentral/answers/6254-reduce-grey-space- Resim-etrafında-şekil) – Amro

cevap

45

Dosya Değişimi üzerindeki subaxis işlevi alt piksellerin kenar boşluklarını belirlemenizi sağlar.

Örnek kullanım: deneyin

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

Sen Varsayılan olarak

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

kullanarak onlara (programlama yoluyla veya üstü) kendinizi konumlandırabilirsiniz, koordinatlar normalize edilirler. [0.1 0.1 0.5 0.5] 'in bir konumu, sol alt köşeden numaralı telefonun yolunun% 10'unda başlayacaktır ve genişliğine eşit bir genişliğe ve şekil yüksekliğinin yarısına eşit bir yüksekliğe sahip olacaktır. .

Sabit bir çözüm için kabul edilen yanıtı, kenar boşluklarına ve dolguya bakın.

4

gizli eksenlerde varsayılan değerlerini azaltmak için LooseInsets mülkiyet Örneğin http://UndocumentedMatlab.com/blog/axes-looseinset-property/

açıklandığı gibi: İşte

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

En azından benim örneğimde, bu 2011a hiçbir şey yapmaz. – John

+0

Ekstra alan, gizli X & Y ekseni kene etiketleri tarafından alınır ve elimine edilebileceğine inanmıyorum. Ancak durumu şu şekilde iyileştirebilirsiniz: 'şekil (2); i = 1: 25 için; hax =) (eksenleri; arsa (t, sin (i * t)); eksen sıkı; eksen kapalı; rowIdx = düzeltme ((i-1)/5); colIdx = mod (i-1,5); newPos = [2 * colIdx, 0,8-0,2 * rowIdx, .2 .2.]; set (gca, 'outer', newPos), end ' –

+1

LooseInset alt yazılar ile çalışır mı? – roni

İlgili konular