2011-09-28 10 views
13

मैं एक साधारण बारप्लॉट बनाने की कोशिश कर रहा हूं लेकिन मुझे एक समस्या है कि मेरे पास x-axis पर डुप्लीकेट नाम हैं। तो जब भी मैं एक्स-अक्ष पर नाम लिखने की कोशिश कर रहा हूं, यह पूर्ण स्ट्रिंग नहीं दिखाता है। मैं डेटाडुप्लिकेट नामों के साथ एक्स-अक्ष पर बारप्लॉट में लेबल कैसे लिखें?

x <- c(1.8405917,0.3265986,1.5723623,464.7370299,0.0000000,3.2235716, 
     3.1223534, 7.0999787, 1.7122258,3.2005524,3.7531266,469.4436828) 

निम्नलिखित है और मैं barplot

barplot(x,xlab=c("AA/AA","AA/CC","AA/AC","AA/NC","CC/AA","CC/CC","CC/AC", 
       "CC/NC","AC/AA","AC/CC","AC/AC","AC/NC")) 

उपयोग कर रहा हूँ लेकिन यह काम नहीं करता। मैंने

axis() 

लेकिन यह भी काम नहीं करता है।

अग्रिम धन्यवाद।

+0

आप किसी भी त्रुटि संदेश मिला था? 'Names.arg' तर्क को नोट करने के लिए –

उत्तर

20

नहीं, xlab साजिश के पूरे एक्स-अक्ष के लिए एक लेबल प्रदान करने के लिए है, व्यक्तिगत सलाखों को लेबल करने के लिए नहीं।

barplot() वेक्टर प्लॉट (या कुछ जो नामों के सेट में प्राप्त किया जा सकता है) के नाम से सलाखों के लिए लेबल लेता है।

> names(x) <- c("AA/AA", "AA/CC", "AA/AC", "AA/NC", "CC/AA", "CC/CC", "CC/AC", 
+    "CC/NC", "AC/AA", "AC/CC", "AC/AC", "AC/NC") 
> barplot(x) 
> ## or with labels rotated, see ?par 
> barplot(x, las = 2) 

संपादित करें: @Aaron उल्लेख के रूप में, barplot() भी एक names.arg सलाखों के लिए लेबल की आपूर्ति की है।

names.arg: नामों में से एक सदिश प्रत्येक बार या सलाखों के समूह नीचे दर्शाया गया जा करने के लिए: यह ?barplot क्या कहना है। यदि यह तर्क छोड़ा गया है, तो namesheight से या कॉलम नाम यदि यह एक मैट्रिक्स है तो नाम लिया जाता है।

जो names.arg की आपूर्ति नहीं की गई है, तो डिफ़ॉल्ट व्यवहार बताता है - जो प्लॉट किए गए ऑब्जेक्ट से नाम लेना है। आपके लिए कौन सा उपयोग सबसे उपयोगी है मुख्य रूप से स्वाद का विषय होगा। पंक्ति/कॉलम/नाम नहीं होने पर कोड थोड़ा तेज हो सकता है, लेकिन आर के कई कार्य names विशेषता (या समान, जैसे पंक्ति नाम) सीधे ऑब्जेक्ट्स से लेंगे, इसलिए आपको प्लॉटिंग/लेबलिंग के लिए लेबल उपलब्ध कराने की आवश्यकता नहीं है परिणाम इत्यादि

+0

+1 अच्छा पूरा जवाब। – Aaron

10

xlabnames.arg होना चाहिए। विवरण के लिए ?barplot देखें।

+0

+1। –

2

axis() का उपयोग करने का तरीका मिडपॉइंट्स को कैप्चर करना है, जो बारप्लॉट फ़ंक्शन देता है। ?barplot देखें:

mids <- barplot(x, xlab="") 

axis(1, at=mids, labels=c("AA/AA","AA/CC","AA/AC","AA/NC","CC/AA","CC/CC", 
          "CC/AC","CC/NC","AC/AA","AC/CC","AC/AC","AC/NC"), 
     las=3) 
3

इस प्रयास करें:

barplot(x, cex.names=0.7, 
     names.arg=c("AA/AA","AA/CC","AA/AC","AA/NC","CC/AA","CC/CC","CC/AC", 
        "CC/NC","AC/AA","AC/CC","AC/AC","AC/NC")) 
संबंधित मुद्दे