2010-11-10 12 views
40

मेरे पास दो वैक्टर हैं जो अंक (x, y) के स्थान का प्रतिनिधित्व करते हैं जिन्हें मैं साजिश करना चाहता हूं।प्लॉट में क्रमशः लेबलिंग अंक

मुझे पता है कि उन्हें कैसे प्लॉट करना है, लेकिन मैं उन्हें प्लॉट पर दिखाई देने वाले लेबल के साथ 1, 2, 3, 4 लेबल भी करना चाहूंगा। लेबल वेक्टर में उनके आदेश का प्रतिनिधित्व करते हैं।

उत्तर

67

यहाँ एक तरीका यह करना है:

p = rand(10,2); 
labels = cellstr(num2str([1:10]')); %' # labels correspond to their order 

plot(p(:,1), p(:,2), 'rx') 
text(p(:,1), p(:,2), labels, 'VerticalAlignment','bottom', ... 
          'HorizontalAlignment','right') 

alt text

+3

मुझे लगता है यह '' text' करने के लिए अतिरिक्त विकल्प के रूप में 'जनक', axesHandle' जोड़ने के लिए उपयोगी है, खासकर यदि आप से की साजिश रचने कर रहे हैं एक फ़ंक्शन के भीतर, यह सुनिश्चित करने के लिए कि पाठ वास्तव में सही आंकड़े पर दिखाई देता है। – Jonas

+0

हैलो, आप "सेट" के साथ ऐसा कैसे करेंगे? 'एच = पाठ (पी (:, 1), पी (:, 2), लेबल); सेट (एच, 'स्थिति', [पी (:, 1) पी (:, 2)], 'स्ट्रिंग', लेबल); 'यह काम नहीं करता है। – k4lls

+0

@ k4lls: ऐसा इसलिए है क्योंकि 'h' हैंडल ग्राफिक्स की एक सरणी है (प्रत्येक "लेबल" बनाया गया एक अलग' टेक्स्ट 'उदाहरण है)। या तो आप प्रत्येक 'एच (i) 'को लूप में सेट करते हैं, या आप विशेष वाक्यविन्यास का उपयोग करते हैं:' सेट (एच, {'स्थिति'}, num2cell (पी, 2), {'स्ट्रिंग'}, लेबल)'। दस्तावेज़ों में इसके बारे में और जानें: http://www.mathworks.com/help/matlab/ref/set.html#f67-575595 – Amro

संबंधित मुद्दे