2011-06-18 9 views
17

में संख्याओं की बजाय स्ट्रिंग का उपयोग कैसे करें मैं bar फ़ंक्शन का उपयोग करके एक मैटलैब आकृति प्राप्त करना चाहता हूं, लेकिन जब प्रत्येक आकृति के नीचे संख्याओं को प्रदर्शित करने के बजाय वास्तविक आकृति प्लॉट की जाती है तो मैं प्रदर्शित करना चाहता हूं जो वास्तविक मूल्य का प्रतिनिधित्व करता है साजिश रची।Matlab - बार आंकड़े

उदाहरण के लिए मैं वेक्टर x = [1 2 3] हो रहा है और इसके बजाय नीचे प्रत्येक बार साजिश रची 1, 2 और 3 दिखाने का, मैं एक स्ट्रिंग इन मूल्यों में से एक करने के लिए इसी प्रदर्शित करना चाहते हैं y = {'sam'; 'alan'; 'ellie'}

enter image description here

आप सका कृपया बताएं कि मैं इसे कैसे प्राप्त कर सकता हूं?

उत्तर

20
x = [1 2 3]; 
str = {'sam'; 'alan'; 'ellie'}; 
bar(x) 
set(gca, 'XTickLabel',str, 'XTick',1:numel(str)) 

enter image description here

+0

के लिए YTickLabel बदलने स्थानापन्न करने की जरूरत है, 1: 4 (या 1: नंबेल (लेबल)) अकेले 'एक्सटिकलेबल' का उपयोग करने के बजाय मेरे लिए अधिक मजबूत साबित हुआ। 'एक्सटिक' छोड़ने से कुछ मामलों में लेबल को विस्थापित कर दिया गया। – Jacob

+0

@ जैकोब: निश्चित रूप से, यह 'XTick' निर्दिष्ट करने के लिए भी चोट नहीं पहुंचाएगा। हालांकि मैं उत्सुक हूं, क्या आपके पास एक उदाहरण है जहां लेबल गुम हो गए हैं? – Amro

+0

उदा। आकृति(); पकड़ो; बार ([10 22 2 11]); लेबल = {'# 7', '# 8', '# 9', '# 10'}; सेट (gca, 'XTickLabel', लेबल); – Jacob