2013-09-07 13 views
7

आर में बॉक्सप्लॉट के लिए एक्स अक्ष के लेबल को कैसे घुमा सकते हैं? मुझे पता है कि कौन सा कोड उपयोग करना है लेकिन मैं इसे लागू नहीं कर सकता:आर बॉक्सप्लॉट झुका हुआ लेबल एक्स अक्ष

text(**????**, par("usr")[3] - 0.25, srt = 45, adj = 1, labels = labels, xpd = TRUE) 

मेरे पास प्रश्न चिह्न कहां हैं?

enter image description here

इस कोड का उपयोग:: मैं इस boxplot बनाया

soil=read.csv("soil_temp_boxplot.csv", header=TRUE, sep=";")  
tiff("soil_boxplot.tiff") 
par(mar=c(5.5,3.5,0.5,0.5)) 
labels<-paste(c("RB-GL830-[16]-10","RB-GL830-[16]-30", "SB-GL834-[11]-10","SB-GL834-[11]-30", "RB-GL843-[17]-10","RB-GL843-[17]-30","SB-GL864-[12]-10","SB-GL864-[12]-30","SB-GL989-[10]-30", "RB-F844-[18]-10", "RB-F844-[18]-30", "SBB-F-864-[14]-10","SB-F991-[13]-10", "SB-F991-[13]-30")) 
boxplot(soil$rb.gl.10.830.16, soil$rb.gl.30.830.16, soil$sb.gl.10.834.11, soil$sb.gl.30.834.11, soil$rb.gl.10.843.17, soil$rb.gl.30.843.17, soil$sb.gl.10.864.12, soil$sb.gl.30.864.12, soil$sb.gl.30.989.10, soil$rb.f.10.844.18, soil$rb.f.30.844.18, soil$sbb.f.10.864.14, soil$sb.f.10.991.13, soil$sb.f.30.991.13, yaxt="n", col=c("darkolivegreen1","darkolivegreen4","darkolivegreen1","darkolivegreen4","darkolivegreen1","darkolivegreen4","darkolivegreen1","darkolivegreen4","darkolivegreen1","burlywood2","burlywood4","burlywood2","burlywood2", "burlywood4")) 
axis(1, labels = TRUE) 
axis(2, c(0, 8, c(1, 2, 3, 4, 5,6,7)), las=1) 
text(labels, par("usr")[3] - 0.25, srt = 45, adj = 1, labels = labels, xpd = TRUE) 
mtext(2, text="Soil Temperature [°C]", line=2.2) 
mtext(1, text="Location", line=4.5) 
dev.off() 

उत्तर

10

एक वैकल्पिक अपने मूल text अभिव्यक्ति निम्नलिखित:

par(mar=c(6, 4.1, 4.1, 2.1)) 

labels <- paste(c("RB-GL830-[16]-10", 
        "RB-GL830-[16]-30", 
        "SB-GL834-[11]-10", 
        "SB-GL834-[11]-30", 
        "RB-GL843-[17]-10", 
        "RB-GL843-[17]-30")) 

boxplot(count ~ spray, data = InsectSprays, 
     col = "lightgray", xaxt = "n", xlab = "") 

# x axis with ticks but without labels 
axis(1, labels = FALSE) 

# Plot x labs at default x position 
text(x = seq_along(labels), y = par("usr")[3] - 1, srt = 45, adj = 1, 
    labels = labels, xpd = TRUE) 

क्यों लेबल पदों के लिए x = seq_along(labels) का उपयोग करें? xtext में समन्वय का एक वेक्टर है जहां लेबल रखना है। यदि आप ?boxplot देखते हैं, तो आप पाते हैं कि at तर्क एक "संख्यात्मक वेक्टर है जहां स्थानों को बॉक्सप्लॉट खींचा जाना चाहिए [...]; डिफ़ॉल्ट 1: n जहां n बॉक्स की संख्या है।" क्योंकि हमने boxplot कॉल में at तर्क निर्दिष्ट नहीं किया है, इसलिए डिफ़ॉल्ट "1: n स्थिति" का उपयोग किया जाएगा। बक्से की संख्या निश्चित रूप से आपके स्पष्टीकरण चर के स्तर की संख्या है, जो @ जोश ओ'ब्रायन ने अपने उत्तर में उपयोग किया था। आपको एक विकल्प दिखाने के लिए, मैंने इसके बजाय आपके अनुकूलित लेबल वेक्टर का उपयोग किया (जिसमें निश्चित रूप से कारक स्तर की संख्या के समान लंबाई होनी चाहिए)। seq_along तर्क के 1 से length से नियमित अनुक्रम उत्पन्न करता है, जो "डिफ़ॉल्ट 1: n" at पदों के अनुरूप है।

एक साइड-नोट: आपका डेटा 'चौड़े' प्रारूप में प्रतीत होता है। आर में कई मामलों में, डेटा को 'लंबे' प्रारूप में रखना अधिक सुविधाजनक है। plot फ़ंक्शन में, आपको केवल x के प्रत्येक स्तर के लिए डेटा निर्दिष्ट करने के बजाय, केवल अपने एक्स चर (उदा। स्थान) और वाई चर (उदा। मिट्टी अस्थायी) निर्दिष्ट करने की आवश्यकता है। enter image description here

+0

धन्यवाद हेनरिक! पूरी तरह से काम किया – samjam

+0

@samjam सुनने के लिए बहुत अच्छा! कृपया मेरे अपडेट किए गए उत्तर में अपने डेटा के प्रारूप के संबंध में मेरा छोटा पक्ष-नोट देखें। – Henrik

2

प्लॉट्रिक्स पैकेज में staxlab फ़ंक्शन देखें, यह यह (और एक वैकल्पिक) काफी सीधे आगे बनाता है।

+0

@ हेनरिक, मेरा मानना ​​है कि मेरा उत्तर ओपी की "मुख्य समस्या" को संबोधित करता है, लेकिन मैं इस बात से सहमत नहीं हूं कि मुख्य समस्या लेबल के एक्स निर्देशांक निर्दिष्ट करने के विशिष्ट प्रश्न के समान है (जिसे मैं स्वीकार करता हूं जवाब पता नहीं है)। इस तरह के एक मंच की सुंदरता यह है कि कई उत्तर मुख्य प्रश्न के साथ-साथ निहित और अन्य संबंधित प्रश्नों को संबोधित कर सकते हैं जो ओपी और भविष्य के खोजकर्ताओं के हित में हो सकते हैं। मैं भी अपनी घड़ी को नहीं देखता और "हाँ" कहता हूं, "क्या आप जानते हैं कि यह कितना समय है?"। –

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