2013-02-03 17 views
5

जब मैं boxplot आर में सेकंड में मापा गया कुछ डेटा, मैं वाई अक्ष के पैमाने को सेकंड से मिनट और सेकंड में कैसे बदल सकता हूं?आर: वाई अक्ष में मिनट और सेकंड के साथ बॉक्सप्लॉट

उदाहरण के लिए

जब मैं कुछ इस तरह करते हैं:

data <- c(298, 507, 1008, 346) 
boxplot(data) 

मैं 1000 तक 300 से एक y अक्ष के साथ एक boxplot प्राप्त मैं "05:00" से "16:40" के लिए वहाँ चाहते हैं इसके बजाय, बस सेकंड और सेकंड में परिवर्तित सेकंड।

उत्तर

8

यहां एक प्रयास है। यह वाई अक्ष को पहले बंद कर देता है और फिर डेटा को मिनटों में परिवर्तित करता है और इसे वाई-अक्ष में टिकटें के रूप में जोड़ता है।

(?axTicks से) "सुंदर tickmark स्थानों, उसी तरह आर आंतरिक रूप से करता है के रूप में गणना करता है।":

data <- c(298, 507, 1008, 346) 
boxplot(data, yaxt="n") 
at <- axTicks(2) 
axis(2, at=at, labels=sprintf("%d:%02d", at %/% 60, at %% 60), las=1) 

एक छोटे से स्पष्टीकरण प्रदान करना।

%% आप जबकि %/% होगा, अगर दिया x %/% y आपको बता कितनी बार xy में चला जाता है विभाजन के बाद शेष दे देंगे।

अंत में, sprintf तार स्वरूपण और इच्छा पैड गणना सेकंड मूल्य के लिए प्रयोग किया जाता है हमेशा अग्रणी संलग्न करने के लिए 0 के यदि आवश्यक हो, अर्थात - 202 हो जाता है।

enter image description here

+0

यह _exactly_ मैं क्या जरूरत है। बहुत बहुत धन्यवाद :-) –

3

समारोह axis.POSIXct साथ एक वैकल्पिक:

data <- c(298, 507, 1008, 346) 
data2 <- as.POSIXct(data, origin=cut(Sys.time(), "hours")) 
boxplot(data2, pars=list(yaxt="n")) 
axis.POSIXct(2, at=pretty(data2), format="%M:%S", las=2) 

enter image description here

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