ऐसा लगता है कि आप प्रत्येक बॉक्स प्लॉट के 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))
हम इस मैन्युअल रूप से जैसा कि ऊपर दिखाया आदेश सकता है, या हम एक ग्रेड प्राप्त करने वाले छात्रों की संख्या के क्रम में ग्रेड साजिश करने का फैसला कर सकता है। यह भी मैन्युअल रूप से किया जा सकता है, लेकिन यह बेहतर होगा अगर हम को स्वचालित कर सकता है यह:
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
ऊपर दिखाए गए वही ग्राफ कमांड को चलाने से आपको एक अलग आदेशित एक्स अक्ष के साथ प्लॉट किया जाता है।
अधिक यहाँ चर्चा: http://stackoverflow.com/questions/11587111/setting-levels-when-creating-a-factor-vs-levels – harkmug