2013-05-16 9 views
7

आर में plot का उपयोग एक्स-अक्ष को वर्णानुक्रम के क्रम में वर्णित करने का कारण बनता है।मैं आर अक्ष में एक प्लॉट में एक्स अक्ष को कैसे पुन: व्यवस्थित कर सकता हूं?

मैं एक्स-अक्ष पर कारकों का क्रम कैसे निर्दिष्ट कर सकता हूं?

उदाहरण:

y <- 1:9 
x <- c(rep("B", 3), rep("A", 3), rep("C", 3)) 
plot(y ~ as.factor(x)) 

इस में जो परिणाम:

enter image description here

मैं इस 'बी', 'ए', 'सी' के रूप में प्लॉट करने के लिए मिल सकता है?

उत्तर

9

आपको बस अपने इच्छित क्रम में अपने कारक के स्तर निर्दिष्ट करने की आवश्यकता है। तो यहाँ मैं एक नया चर x1

x1 = factor(x, levels=c("B", "C", "A")) 

बनाने जहां

R> x1 
[1] B B B A A A C C C 
Levels: B C A 

plot समारोह अब अपेक्षा के अनुरूप काम करता है।

plot(y ~ x1) 
+0

अधिक यहाँ चर्चा: http://stackoverflow.com/questions/11587111/setting-levels-when-creating-a-factor-vs-levels – harkmug

2

ऐसा लगता है कि आप प्रत्येक बॉक्स प्लॉट के 50% मूल्य के आधार पर उन्हें किसी प्रकार के आदेश में प्लॉट करना चाहते हैं? एक उदाहरण के रूप में एक अलग dataframe ले रहा है:

temp <- structure(list(
    Grade = c("U","G", "F", "E", "D", "C", "B", "A", "A*"), 
    n = c(20L, 13L, 4L, 13L, 36L, 94L, 28L, 50L, 27L)), 
    .Names = c("Grade", "n"), 
    class = c("tbl_df", "data.frame"), 
    row.names = c(NA, -9L)) 

अगर हम इस साजिश, हम देख सकते हैं कि लेबल (ए ए * से पहले आता है) अव्यवस्थित हैं।

library(ggplot2) 
ggplot(temp) + 
geom_bar(stat="identity", aes(x=Grade, y=n)) 

enter image description here

हम इस मैन्युअल रूप से जैसा कि ऊपर दिखाया आदेश सकता है, या हम एक ग्रेड प्राप्त करने वाले छात्रों की संख्या के क्रम में ग्रेड साजिश करने का फैसला कर सकता है। यह भी मैन्युअल रूप से किया जा सकता है, लेकिन यह बेहतर होगा अगर हम को स्वचालित कर सकता है यह:

library(dplyr) 
temp <- temp %>% arrange(n) 

फिर हम Grade स्तंभ के अंदर स्तर बदलने के आदेश का प्रतिनिधित्व करने के:

पहले हम dataframe आदेश डेटा

temp$Grade <- as.vector(temp$Grade) #get rid of factors 
temp$Grade = factor(temp$Grade,temp$Grade) #add ordered factors back 

ऊपर दिखाए गए वही ग्राफ कमांड को चलाने से आपको एक अलग आदेशित एक्स अक्ष के साथ प्लॉट किया जाता है।

enter image description here

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