2012-04-02 10 views
22

यह एक बुनियादी सवाल है लेकिन मैं एक जवाब खोजने में असमर्थ हूं। मैं एक पैनल के भीतर 9 बारप्लॉट उत्पन्न कर रहा हूं और प्रत्येक बारप्लॉट में लगभग 12 बार हैं। मैं अपने इनपुट में सभी 12 लेबल प्रदान कर रहा हूं लेकिन आर केवल वैकल्पिक सलाखों का नाम दे रहा है। यह स्पष्ट रूप से आर में कुछ डिफ़ॉल्ट सेटिंग के कारण है जिसे बदलने की जरूरत है लेकिन मैं इसे खोजने में असमर्थ हूं।आर बारप्लॉट में सभी एक्स लेबल कैसे प्रदर्शित करें?

+2

प्लॉटिंग कैनवास को बड़ा बनाएं – James

उत्तर

23

यदि आप कॉल के अंदर las=2 का उपयोग करते हैं तो आप सभी लेबलों को प्रदर्शित करने में सक्षम हो सकते हैं। अन्यथा, आपको xaxt="n" का उपयोग करने की आवश्यकता होगी और फिर लेबल को axis(1, at= ..., labels=...) पर एक अलग कॉल के साथ डालेंगे।

एक अन्य विधि पहले मध्य बिन्दुओं को इकट्ठा करने और फिर पाठ रोटेशन की डिग्री को नियंत्रित करने के XPD और srt साथ पाठ() का उपयोग करने के लिए है:

text(x=midpts, y=-2, names(DD), cex=0.8, srt=45, xpd=TRUE) 

y- मान में निर्देशांकों का उपयोग कर चुना जा करने की जरूरत है प्लॉट क्षेत्र

+2

las = 2, ठीक काम करता है और विशेष रूप से कई बार – user2760

+1

के साथ अधिक उपयोगी है 'las = 2' सुझाव काम करता है, लेकिन' अक्ष (...) 'नहीं है। 'अक्ष() 'का उपयोग पहले स्थान पर' barplot() 'द्वारा किया जा रहा है; जब इसे स्वयं कहा जाता है, तो यह फिर से 'टिक लेबल ओवरलैपिंग न करने के लिए कड़ी मेहनत करेगा', (जैसा कि 'अक्ष' रखा गया है)। –

+0

यह विशेष मामले पर निर्भर करता है। यदि आप इस कोड की पेशकश करते हैं तो प्रत्येक टिक पर लेबल जोड़ते हैं: 'अक्ष (1, पर = midpts, लेबल = नाम (डीडी), cex.axis = 0.7) ' –

16

एक आधार आर barplot, आप (जैसे मैं यहाँ कर) का शब्दचित्र में दिए गए उदाहरणों में से एक खुद को अनुकूलित कर पर घुमाया लेबल प्राप्त करने के लिए gridBase पैकेज:

library(grid) 
library(gridBase) 

## Make some data with names long enough that barplot won't print them all 
DD <- table(rpois(100, lambda=5)) 
names(DD) <- paste("long", names(DD), sep="_") 

## Plot, but suppress the labels 
midpts <- barplot(DD, col=rainbow(20), names.arg="") 

## Use grid to add the labels  
vps <- baseViewports() 
pushViewport(vps$inner, vps$figure, vps$plot) 

grid.text(names(DD), 
    x = unit(midpts, "native"), y=unit(-1, "lines"), 
    just="right", rot=50) 

popViewport(3) 

enter image description here

+0

हम्म। मुझे बस "फ़ंक्शन नहीं मिल सका" pushViewport "तो मुझे लगता है कि यह पुराना है – Dirk

+1

@Dirk टिप्पणी के लिए धन्यवाद ऐसा लगता है कि अब आपको ** ग्रिड ** पैकेज को स्पष्ट रूप से लोड करने की आवश्यकता है। मैंने अभी इसे संपादित किया है, और यह अब काम करता है जैसा सोचा वैसा। –

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