R [बंद] में एक ग्राफ पर कई बारप्लेट्स खींचना


12

मैं आर में एक ग्राफ पर चार बारप्लेट्स प्लॉट करना चाहूंगा। मैंने निम्नलिखित कोड का उपयोग किया है। यहां, एक किंवदंती को ग्राफ के शीर्ष पर कैसे रखा जा सकता है, विशेष रूप से किंवदंती 2 और 3 के बीच में होनी चाहिए। मैंने भी कोशिश की par(mar=c(4.1,4.1,8.1,4.1)लेकिन कोई सफलता नहीं मिली। इसके अलावा, मैंने legend()दूसरी बारप्लॉट के बाद भी चलने की कोशिश की , लेकिन कोई फायदा नहीं हुआ। किंवदंती सभी चार बारप्लेट्स के लिए है। कृपया इस संबंध में मेरी सहायता करें।

    par(mfrow=c(1,4))
    barplot(t(A), beside=T, ylim=c(-100,100),..)
    barplot(t(B), beside=T, ylim=c(-100,100),..)
    barplot(t(C), beside=T, ylim=c(-100,100),..)
    barplot(t(D), beside=T, ylim=c(-100,100),..)
    legend(...)

1
किसी ने इसे आर
ब्रैंडन बर्टेल्सन

@ केविन यह यहाँ एक वैध क्यू है; तथ्य यह है कि आर कमांड लाइन इंटरफेस है इसका मतलब यह नहीं है कि कोई भी आर सवाल एक प्रोग्रामिंग है।

@ब्रांडन श्योर; आप भविष्य में सुझाए गए संपादन का उपयोग कर सकते हैं, आप स्वीकृत सुझाव के लिए 2 प्रतिनिधि भी कमा सकते हैं।

जवाबों:


17

डॉ माइक जवाब एक अच्छा है, लेकिन मैंने सोचा कि मैं समाधान है कि faceting (या trellising) का लाभ लेने की सुविधाओं उपलब्ध कराएंगे ggplot2और lattice। पहले डेटा को थोड़ा प्रीप करें:

mydata$id <- 1:nrow(mydata)
dat <- melt(mydata,id.vars = "id")

और फिर हम निम्नलिखित कर सकते हैं ggplot2:

ggplot(dat,aes(x=factor(id), y = value)) + 
    facet_wrap(~variable) +
    geom_bar(aes(fill = factor(id)))

यहाँ छवि विवरण दर्ज करें

और का उपयोग कर lattice:

barchart(~value|variable,group = factor(id),data=dat,
         key = simpleKey(text = as.character(1:5),
                rectangles = TRUE,points = FALSE,space = "right"))

यहाँ छवि विवरण दर्ज करें


@ब्रांडन - यह मेरा नया मिशन है। यदि आधार, ggplot2 और जाली से उदाहरण हैं, तो ये प्रश्न दूसरों के लिए बेहतर संदर्भ हैं।
जोरन

@ जोरान: शानदार।
समरसा

Ggplot संस्करण में "फ़ैक्टर (id)" पर लेबल का नाम कैसे बदलें?
News_is_Selection_Bias

11

मुझे लगता है कि आपकी समस्या को हल करने के लिए सबसे सरल उपाय बारप्लॉट कमांड की अंतर्निहित क्षमताओं का उपयोग करना है। निम्न कोड वह करता है जो मैं व्याख्या करता हूं कि आप चाहते हैं।

mydata <- data.frame(Barplot1=rbinom(5,16,0.6), Barplot2=rbinom(5,16,0.25),
                     Barplot3=rbinom(5,5,0.25), Barplot4=rbinom(5,16,0.7))
barplot(as.matrix(mydata), main="Interesting", ylab="Total", beside=TRUE, 
        col=terrain.colors(5))
legend(13, 12, c("Label1","Label2","Label3","Label4","Label5"), cex=0.6, 
       fill=terrain.colors(5))

भूखंड

उम्मीद है कि यह आपके प्रश्न का उत्तर देगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.