2011-11-10 3 views
16

मैं एक मैटलैब आकृति में 0 पर एक्स-अक्ष लाइन जोड़ना चाहता हूं ताकि मैं अपने डेटा की तुलना एक जेपीजी में आंकड़ों को सहेजते समय सकारात्मक या नकारात्मक हो या नहीं। इसे करने का बेहतरीन तरीका क्या है? मुझे पता है कि आप लाइन() का उपयोग कर सकते हैं लेकिन यह केवल बोझिल लगता है क्योंकि आपको एक्स और वाई श्रेणियों को निर्दिष्ट करने की आवश्यकता है। क्या कोई आसान तरीका है? धन्यवाद!किसी आकृति में एक्स-अक्ष लाइन कैसे जोड़ें? (matlab)

उत्तर

6

मैं नहीं मानता है निर्मित एक तरीका है कि और अधिक सुविधाजनक है। मैं FileExchange है, जो एक आकर्षण की तरह काम से hline() और vline() का उपयोग करें:

http://www.mathworks.com/matlabcentral/fileexchange/1039

6

आप इस एक्स रेंज सीधे के बाद आंकड़ा बना दिया गया है हो सकता है। यह इस तरह एक छोटे से कुछ है:

x=-2:5; 
y=x.^2-1; 

figure() 
plot(x,y); 

xlim = get(gca,'xlim'); %Get x range 
hold on 
plot([xlim(1) xlim(2)],[0 0],'k') 

enter image description here

ध्यान दें कि अगर आप किसी भी मैनुअल आकृति में ज़ूम आउट करके करते हैं, लाइन पूरी नई एक्स रेंज पर जाने के लिए दोबारा बनाई जा करने के लिए हो सकता है।

31

एक गैर-दस्तावेजी समारोह graph2d.constantline मौजूद हैं:

plot(-2:5, (-2:5).^2-1) 

%# vertical line 
hx = graph2d.constantline(0, 'LineStyle',':', 'Color',[.7 .7 .7]); 
changedependvar(hx,'x'); 

%# horizontal line 
hy = graph2d.constantline(0, 'Color',[.7 .7 .7]); 
changedependvar(hy,'y'); 

screenshot

अच्छी बात यह है कि यह आंतरिक रूप से कुल्हाड़ियों सीमा के लिए एक श्रोता को लागू करता है (हैंडल पैन, ज़ूम, आदि जैसे बदल ..)। तो रेखाएं अनंत तक बढ़ने लगती हैं।

+0

मैटलैब 7.0.1 के अपने संस्करण की तरह लग रहा है जब मैं अपने कोड चलाने के लिए और मैं x- अक्ष रेखा नहीं मिलता R14 SP1 मुझे एक विभाजन उल्लंघन देता है।:( –

+1

क्यों डाउनवोट, [MATLAB] का आपका संस्करण (http://en.wikipedia.org/wiki/MATLAB#Release_history) बहुत पुराना है, और जैसा कि यह निकला है, उपर्युक्त समाधान नहीं चलाता .. प्लस के रूप में मैंने उल्लेख किया है, यह एक अनियंत्रित विशेषता है – Amro

+0

क्षमा करें, मुझे नहीं लगता था कि ऐसा होगा। मैंने अपवर्त पूर्ववत करने की कोशिश की, लेकिन इसके बजाय डाउनवोट का कारण बन गया। बहुत सहज नहीं .. =/अब मैं कुछ भी नहीं कर सकता उत्तर को तब तक लॉक किया जाता है जब तक कि पोस्ट संपादित नहीं किया जाता है और मेरे पास संपादन विशेषाधिकार नहीं हैं। –

6

जीएनयू आर में एक vline और hline आदेश की तरह बहुत अच्छा होगा, लेकिन मैं से

plot(1:10,sin(1:10)); 
line(xlim,[0 0],'Color','r') 
+1

यह एक बहुत ही सुरुचिपूर्ण विधि है! –

0
  1. एक छोटी समस्या का समाधान नहीं मिल सकता है plot() आदेश या stem() द्वारा अपने डेटा को आकर्षित करें। एक आकृति खिड़की खुल जाएगी।
  2. तो आंकड़ा खिड़की पर,
    मेनू पट्टी से [insert] आदेश पर क्लिक करें, एक ड्रॉप-डाउन मेनू दिखाई देगा।
  3. [लाइन] आदेश, अब
    कर्सर के आकार पर इस मेनू क्लिक से धन चिह्न में बदल जाएगा।
  4. अब आप एक लाइन कहीं भी आकर्षित कर सकते हैं आप चाहते हैं, या तो क्षैतिज या
    खड़ी या तिरछी।
  5. आप
    लाइन पर राइट क्लिक करके लाइन के गुणों को बदल सकते हैं, एक मेनू दिखाई देगा जिसमें से आप अपनी इच्छाओं को चुन सकते हैं
    गुण।
  6. आप लाइन पर कुछ टिक करना चाहते हैं तो आप पाठ विकल्प जोड़ने का उपयोग कर सकते हैं, और पाठ जहां कभी आप चाहते हैं जगह।
  7. आप अपने आंकड़ा के लिए एक कोड है [फ़ाइल] मेनू पर क्लिक करें और फिर [generatecode] विकल्प, एक नया पाठ संपादक
    विंडो खुल जाएगा पर क्लिक करें चाहते हैं, तो आप आगे उपयोग के लिए इस कोड को बचा सकता है। सौभाग्य।