मेरे सहयोगी और मैं एक्स-वैल्यू के आधार पर वर्णानुक्रम के बजाय y-values के आधार पर एक स्टैक्ड बार ग्राफ़ का ऑर्डर करने का प्रयास कर रहा हूं
नमूना डेटा है:
samp.data <- structure(list(fullname = c("LJ", "PR", "JB", "AA", "NS", "MJ", "FT", "DA", "DR", "AB", "BA", "RJ", "BA2", "AR", "GG", "RA", "DK", "DA2", "BJ2", "BK", "HN", "WA2", "AE2", "JJ2"), I = c(2L, 1L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), S = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 2L, 3L, 2L, 2L, 2L, 3L, 2L, 3L, 2L, 3L, 3L, 3L), D = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 2L, 3L, 3L, 3L, 2L, 3L, 3L), C = c(0L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 2L, 3L, 3L, 3L, 3L)), .Names = c("fullname", "I", "S", "D", "C" ), class = "data.frame", row.names = c(NA, 24L))
मैं इस ग्राफ में एक स्टैक्ड बार ग्राफ है चाहता हूँ। मैं इस के साथ कर रहा हूँ:
md <- melt(samp.data, id=(c("fullname"))) temp.plot<-ggplot(data=md, aes(x=fullname, y=value, fill=variable) ) + geom_bar()+ opts(axis.text.x=theme_text(angle=90))+ opts(title = "Score Distribtion") ggsave(temp.plot,filename="test.png")
लेकिन मैं अंततः पूर्णनामों के वर्णानुक्रमिक क्रम के बजाय 4 चर (I, S, D, और C) के योग से सॉर्ट करना चाहता हूं।
कोई भी मदद बहुत ही सराहनीय होगी! धन्यवाद!!
सामान्य (गैर ggplot
-specific) उत्तर अन्य स्तंभों के कुछ फ़ंक्शन के आधार पर, एक विशिष्ट कॉलम में कारक स्तर को रीसेट करने के लिए reorder()
का उपयोग करना है
## Examine the default factor order levels(samp.data$fullname) ## Reorder fullname based on the the sum of the other columns samp.data$fullname <- reorder(samp.data$fullname, rowSums(samp.data[-1])) ## Examine the new factor order levels(samp.data$fullname) attributes(samp.data$fullname)
तो बस मूल प्रश्न से कोड का उपयोग करते हुए, बस replot
md <- melt(samp.data, id=(c("fullname"))) temp.plot<-ggplot(data=md, aes(x=fullname, y=value, fill=variable) ) + geom_bar()+ theme(axis.text.x=theme_text(angle=90)) + labs(title = "Score Distribtion") ## ggsave(temp.plot,filename="test.png")