2010-08-05 12 views
8

अक्ष पर संख्या स्वरूपण को नियंत्रित करना मेरे पास कुछ 100k मान हैं। जब मैं उन्हें आर में एक पंक्ति के रूप साजिश (plot(type="l") का उपयोग कर एक्स-अक्ष टिक के बगल में संख्या वैज्ञानिक स्वरूप में मुद्रित कर रहे हैं (उदाहरण के लिए 0e+00,2e+04,...,1e+05) इसके बजाय, मैं उन्हें चाहते हैं होने के लिए:।आर प्लॉट्स

ए) 0,20kb,...,100kb

बी) वही है लेकिन अब पहला समन्वय 1 होना चाहिए (यानी 0 के बजाय 1 से गिनना शुरू करना)।

उत्तर

8

एक

BTW आर सरणियों नंबरिंग कि 1 से शुरू होता है (पर्ल में सरणियों के विपरीत, जावा आदि) उपयोग करती हैं इसलिए मुझे आश्चर्य है कि क्यों जब साजिश रचने "वे" 0 से शुरू फैसला किया ...)

R> xpos <- seq(0, 1000, by=100) 
R> plot(1:1000, rnorm(1000), type="l", xaxt="n") 
R> axis(1, at=xpos, labels=sprintf("%.2fkb", xpos/1000)) 

बी) से ऊपर के रूप में ही समायोजित xpos

+0

यह सही नहीं है। आप बस संख्या के बगल में "केबी" जोड़ते हैं, लेकिन संख्या को अपरिवर्तित छोड़ दें (1000 से उन्हें विभाजित करने के बजाय) –

+0

कम से कम लड़के को सही उत्तर के लिए वोट दें – John

0

सवाल काफी पुराना है लेकिन जब मैं वर्णित समस्या के लिए समाधान के लिए देखा यह काफी उच्च स्थान पर था। इसलिए, मैं इसे जोड़ता हूं - काफी देर से - उत्तर और उम्मीद है कि यह कुछ अन्य लोगों की मदद कर सकता है :-)।

कुछ स्थितियों में यह उन टिक स्थानों का उपयोग करने के लिए उपयोगी हो सकता है जो R सुझाते हैं। इस उद्देश्य के लिए R फ़ंक्शन प्रदान करता है। संभवतः यह R2.X में मौजूद नहीं था, लेकिन केवल R3.X के बाद से।

एक)

myTicks = axTicks(1) 
axis(1, at = myTicks, labels = paste(formatC(myTicks/1000, format = 'd'), 'kb', sep = '')) 

बी)

आप plot(rnorm(1000)) की तरह डेटा प्लॉट है, तो पहले एक्स-मान 1 है और न 0. इसलिए, स्वचालित रूप से नंबर के साथ 1. एक हो सकता है कि यह था शुरू होता है R के पिछले संस्करण के साथ समस्या?

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