2011-07-13 6 views
42

संभव डुप्लिकेट:
MATLAB subplot marginmatlab में subplots के आसपास सीमाओं को कम करने के लिए कैसे?

matlab में, अंतरिक्ष के एक अत्यधिक राशि subplots आसपास बर्बाद हो जाता है। उदाहरण के लिए, इस उदाहरण में: आंकड़े पर अंतरिक्ष की%

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 से अधिक के रूप में बर्बाद हो जाता है "रिक्त" मुझे लगता है कि रिक्त स्थान नीचे हटना चाहते हैं, लेकिन करने के लिए असफल रहे हैं ऐसा करने के लिए एक तंत्र की पहचान करें। विचार?

धन्यवाद जॉन

+2

यहाँ अन्य संभावनाओं की एक सूची है ible समाधान: [तंग सबप्लॉट] (http://www.mathworks.com/matlabcentral/fileexchange/27991-tight-subplot), [jointनफिग.एम] (http://www.mathworks.com/matlabcentral/fileexchange/304 -जॉइंटफिग-एम), [आंकड़े बनाने के लिए कुछ मैटलैब चालें] (http://nibot-lab.livejournal.com/73290.html), [उपयोगी छोटी उपयोगिता] (http://groups.google.com/group/ comp.soft-sys.matlab/ब्राउज_थ्रेड/थ्रेड/5706e8dfbb4a418/f5154f1df6efaff4), [चित्र में छवियों के चारों ओर ग्रे स्पेस को कम करें] (http://www.mathworks.com/matlabcentral/answers/6254-reduce-grey-space- चारों ओर छवियों में एक-आंकड़ा) – Amro

उत्तर

45

फ़ाइल एक्सचेंज पर subaxis फ़ंक्शन आपको सबप्लॉट्स के लिए मार्जिन निर्दिष्ट करने की अनुमति देता है।

उदाहरण उपयोग:

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

आप उन्हें अपने आप को (या प्रोग्राम के) स्थित कर सकते हैं

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

का उपयोग कर डिफ़ॉल्ट रूप से, निर्देशांक सामान्यीकृत होते हैं। इसलिए [0.1 0.1 0.5 0.5] में निचले बाएं कोने से 10% से शुरू होगा, और इसकी चौड़ाई बराबर आकृति चौड़ाई तक होगी, और आकृति ऊंचाई के बराबर ऊंचाई होगी ।

मार्जिन और पैडिंग के अंतर्निहित समाधान के लिए स्वीकृत उत्तर देखें।

4

कोशिश छिपा कुल्हाड़ियों में मूलभूत मूल्यों को कम करने के LooseInsets संपत्ति, http://UndocumentedMatlab.com/blog/axes-looseinset-property/

में वर्णित के रूप उदाहरण के लिए:

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

कम से कम मेरे उदाहरण में, यह 2011a पर कुछ भी नहीं करता है। – John

+0

छिपी हुई एक्स और वाई अक्षों द्वारा अतिरिक्त स्थान लिया जाता है, और मुझे विश्वास नहीं है कि उन्हें समाप्त किया जा सकता है। लेकिन आप निम्नानुसार स्थिति में सुधार कर सकते हैं: 'आंकड़ा (2); i = 1: 25 के लिए; hax = अक्ष(); साजिश (टी, पाप (i * टी)); धुरी तंग; धुरी बंद; rowIdx = फिक्स ((i-1)/5); colIdx = आधुनिक (i-1,5); newPos = [2 * colIdx, 0.8-.2 * rowIdx, .2, .2।]; सेट (gca, 'outer', newPos), end' –

+1

क्या लूजइन्स सबप्लॉट्स के साथ काम करता है? – roni