दिलचस्प पोस्ट
सुपरक्लास कंस्ट्रक्टर को फोन करने के लिए नियम क्या हैं? फोरट्रान सबस्ट्रेटीन गलत मूल्यों को लौट रहा है मैं आखिरी बच्चे को छोड़कर एक तत्व के सभी बच्चों का चयन कैसे कर सकता हूं? किसी वेबसाइट पर फ़ोल्डर अपलोड करने का सबसे अच्छा तरीका क्या है? os.path.dirname (__ फ़ाइल_) खाली देता है यूनिक्स सॉर्ट संस्करण संख्या वापसी मूल्य के साथ संग्रहीत कार्यप्रणाली को कॉल करना मानचित्र पर बारप्लॉट्स App.config फ़ाइल में मान लिखें UINavigationBar मल्टी-लाइन शीर्षक उपयोगकर्ताओं को डेवलसे के लिए प्रोफाइल मॉडल? यूटीएफ -8 ईमेल कैसे भेजें? स्थिर चर जब सी # में आरंभ किया जाता है? गुंजाइश और यूआई राउटर के साथ नियंत्रक तत्काल जावास्क्रिप्ट स्वैप सरणी तत्व

गैंट स्टाइल टाइम लाइन प्लॉट (बेस आर में)

मेरे पास डेटाफ्रेम है जो इस तरह दिखता है:

person n start end 1 sam 6 0 6 2 greg 5 6 11 3 teacher 4 11 15 4 sam 4 15 19 5 greg 5 19 24 6 sally 5 24 29 7 greg 4 29 33 8 sam 3 33 36 9 sally 5 36 41 10 researcher 6 41 47 11 greg 6 47 53 

जहां शुरू और अंत समय या अवधियों (सैम 6 से 11 से ग्रेग से लेकर 6 से 11 तक की बात है)। एन कितनी देर है (इस मामले में # शब्दों में) व्यक्ति ने बात की मैं इसे आधार आर में एक समय रेखा के रूप में प्लॉट करना चाहता हूं (मैं अंततः एक ggplot2 का उपयोग कर एक समान प्रश्न पूछ सकता हूं लेकिन यह उत्तर बेस आर [जब मैं बेस का मतलब है, जो कि मानक इंस्टॉल के साथ आने वाले संकुल का मतलब है]) के लिए विशिष्ट है।

Y अक्ष व्यक्ति के द्वारा होगा और एक्स अक्ष समय होगा उम्मीद है कि अंतिम उत्पाद उपरोक्त डेटा के लिए ऐसा कुछ दिखता है:

Timeline_Graph

मैं इसे बनाने के लिए आधार आर का उपयोग करना चाहता हूं। मुझे यकीन नहीं है कि कैसे इस दृष्टिकोण के लिए। मेरा विचार एक डॉट प्लॉट का उपयोग करना है और एक डॉटप्लोट प्लॉट करना है, लेकिन डॉट्स को छोड़ दें फिर इस पर स्क्वायर ओवर सेगमेंट्स पर जाएं। मुझे इस बारे में निश्चित नहीं है कि यह कैसे काम करेगा क्योंकि सेगमेंट को खंड बनाने के लिए सेगमेंट को न्यूमेरिक एक्स और वाई अंक की आवश्यकता होती है और y अक्ष स्पष्ट है। एक अन्य सोचा है कि कारक को संख्यात्मक (प्रत्येक कारक को एक संख्या असाइन करें) और एक रिक्त स्कैटरप्लॉट के रूप में परिवर्तित करने के लिए परिवर्तित करें और फिर वर्ग के अंत लाइन सेगमेंट के साथ जाएं। भाषण पैटर्न पर यह मेरे क्षेत्र का एक शक्तिशाली उपकरण हो सकता है

आपकी मदद के लिए मैं आपको पहले से धन्यवाद करता हूँ

पी एस वर्ग समाप्त लाइन खंडों के लिए तर्क segments(... , lend=2) लिए तर्क को बचाने के लिए उन सभी लोगों के लिए यह जानकारी देखती है जो सभी सेगमेंट तर्क से परिचित नहीं हैं

Solutions Collecting From Web of "गैंट स्टाइल टाइम लाइन प्लॉट (बेस आर में)"

यद्यपि y-axis स्पष्ट है, आपको केवल यह करने की ज़रूरत है श्रेणियों (1: 5) के लिए संख्याओं को असाइन करें और उन्हें ट्रैक करें। कारक के डिफ़ॉल्ट as.numeric () का उपयोग करना आमतौर पर उन्हें वर्णानुक्रम में नंबर देगा लेकिन आपको वैसे भी चेक करना चाहिए। अपनी भूखंड को एक्सएक्सटी = 'एन' तर्क के साथ बनाएं फिर अक्ष () कमांड का उपयोग करने के लिए y- अक्ष में डालें

 axis(2, 1:5, myLabels) 

ध्यान रखें कि जब भी आप चीजों को स्थानांतरित करने का एकमात्र तरीका तलाश रहे हों, वह संख्या के साथ है स्पष्ट x या वाई मान हमेशा अक्षरों पर नंबरों के स्थान पर श्रेणी नाम लेबल के साथ संख्याएं 1: एनकेचेंज हैं।

निम्नलिखित जैसा कुछ आपको पर्याप्त बंद कर देता है (अपना डेटा मानते हुए। फ्रेम वस्तु को डीएटीएफ कहा जाता है) …

 datf$pNum <- as.numeric(datf$person) plot(datf$pNum, xlim = c(0, 53), type = 'n', yaxt = 'n', xlab ='Duration (words)', ylab = 'person', main = 'Speech Duration') axis(2, 1:5, sort(unique(datf$person)), las = 2, cex.axis = 0.75) with(datf, segments(start, pNum, end, pNum, lwd = 3, lend=2)) 

आप कहते हैं कि आप एक बेस आर समाधान चाहते हैं, लेकिन आप ऐसा क्यों नहीं कह सकते चूंकि यह ggplot में कोड की एक पंक्ति है, इसलिए मैं इसे किसी भी तरह दिखाता हूं।

 library(ggplot2) ggplot(dat, aes(colour=person)) + geom_segment(aes(x=start, xend=end, y=person, yend=person), size=3) + xlab("Duration") 

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

@ जॉन के दृष्टिकोण के समान, लेकिन जब से मैंने ऐसा किया था, मैं इसे पोस्ट करूंगा 🙂

एक गैन्ट (कोई निर्भरता) को साजिश करने के लिए यहां एक सामान्य कार्य है:

 plotGantt <- function(data, res.col='resources', start.col='start', end.col='end', res.colors=rainbow(30)) { #slightly enlarge Y axis margin to make space for labels op <- par('mar') par(mar = op + c(0,1.2,0,0)) minval <- min(data[,start.col],na.rm=T) maxval <- max(data[,end.col],na.rm=T) res.colors <- rev(res.colors) resources <- sort(unique(data[,res.col]),decreasing=T) plot(c(minval,maxval), c(0.5,length(resources)+0.5), type='n', xlab='Duration',ylab=NA,yaxt='n' ) axis(side=2,at=1:length(resources),labels=resources,las=1) for(i in 1:length(resources)) { yTop <- i+0.1 yBottom <- i-0.1 subset <- data[data[,res.col] == resources[i],] for(r in 1:nrow(subset)) { color <- res.colors[((i-1)%%length(res.colors))+1] start <- subset[r,start.col] end <- subset[r,end.col] rect(start,yBottom,end,yTop,col=color) } } par(mar=op) # reset the plotting margins } 

उपयोग का उदाहरण:

 data <- read.table(text= '"person","n","start","end" "sam",6,0,6 "greg",5,6,11 "teacher",4,11,15 "sam",4,15,19 "greg",5,19,24 "sally",5,24,29 "greg",4,29,33 "sam",3,33,36 "sally",5,36,41 "researcher",6,41,47 "greg",6,47,53',sep=',',header=T) plotGantt(data, res.col='person',start.col='start',end.col='end', res.colors=c('green','blue','brown','red','yellow')) 

परिणाम:

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