2013-06-30 14 views
6

में वैज्ञानिक संकेतन मैं एक सरल साजिश है:आर भूखंडों

#!/usr/bin/Rscript                      

png('plot.png') 

y <- c(102, 258, 2314)                   
x <- c(482563, 922167, 4462665) 

plot(x,y) 
dev.off() 

आर 500, 1000, 1500, आदि का उपयोग करता है y अक्ष के लिए। क्या कोई तरीका है कि मैं y अक्ष के लिए वैज्ञानिक नोटेशन का उपयोग कर सकता हूं और अक्ष के शीर्ष पर * 10^3 डाल सकता हूं जैसे नीचे दिए गए आंकड़े की तरह?

enter image description here

उत्तर

3

यह एक hacky तरह से की तरह है, लेकिन इसके साथ कुछ भी गलत नहीं है:।

plot(x,y/1e3, ylab="y /10^3") 
+0

धन्यवाद। यह अभिव्यक्तियों का उपयोग करके बेहतर होगा http://stackoverflow.com/questions/4302367/concatenate-strings-and-expressions-in-a-plots-title – Yang

2

आप लेबल कैसे प्राप्त पर अपने अक्ष इस्तेमाल किया की साजिश रचने प्रणाली पर निर्भर करता है (आधार, ggplot2 या जाली) आप scales पैकेज से कार्यों का उपयोग कर सकते हैं अपने अक्ष संख्या फ़ॉर्मेट करने के लिए:

library(scales) 
x <- 10^(1:10) 
scientific_format(1)(x) 
[1] "1e+01" "1e+02" "1e+03" "1e+04" "1e+05" "1e+06" "1e+07" "1e+08" "1e+09" "1e+10" 

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

library(ggplot2) 
dat <- data.frame(x = c(102, 258, 2314),                  
        y = c(482563, 922167, 4462665)) 

qplot(data=dat,x=x,y=y) + 
    scale_y_continuous(label=scientific_format(digits=1))+ 
    theme(axis.text.y =element_text(size=50)) 

enter image description here

संपादित ओपी एक विशिष्ट जरूरत है। यहां कुछ विचारों को मैंने यहां पूरा करने के लिए उपयोग किया:

  1. आप axis फ़ंक्शन का उपयोग करके अपने प्लॉट लेबल को कस्टमाइज़ कर सकते हैं।
  2. उपयोग mtext बाहरी साजिश क्षेत्र में पाठ डाल करने के लिए plotmath सुविधाओं से लाभ के लिए
  3. उपयोग अभिव्यक्ति ...

enter image description here

y <- c(102, 258, 2314)                   
x <- c(482563, 922167, 4462665) 
plot(x,y,ylab='',yaxt='n') 
mtext(expression(10^3),adj=0,padj=-1,outer=FALSE) 
axis(side=2,at=y,labels=round(y/1000,2)) 
+0

मुझे लगता है कि आपने मेरे प्रश्न को गलत समझा है; मैं y अक्ष के साथ 1, 2, 3, 4 चाहता हूं और y + 06 y अक्ष के शीर्ष पर होना चाहता हूं। – Yang

+0

लेकिन आपके लिए जानकारी के लिए धन्यवाद। – Yang

+0

नहीं, मैं पूरी तरह से आपकी ज़रूरत को समझता हूं। मेरा जवाब आर प्लॉट सुविधाओं को खोजने के लिए आपको आमंत्रित करने के लिए सामान्य था और कुछ MATLAB सुविधाओं को पुन: उत्पन्न करने की कोशिश नहीं करना था। कई डिफ़ॉल्ट आर पैरामीटर को साजिश से जानकारी निकालने के लिए अनुकूलित किया जाता है। उदाहरण के लिए 10^3 डालने, साजिश को समझने में कठोर बनाना, हम हर बार एक बिंदु का पालन करने के लिए पुनर्विक्रय करने के लिए बाध्य हैं ... – agstudy

9

ऐसा ही एक तकनीक eaxis उपयोग करने के लिए है (बढ़ाया/इंजीनियरिंग धुरी) sfsmisc पैकेज से।

यह इस तरह काम करता है:

library(sfsmisc) 

x <- c(482563, 922167, 4462665) 
y <- c(102, 258, 2314) 

plot(x, y, xaxt="n", yaxt="n") 

eaxis(1) # x-axis 
eaxis(2) # y-axis 

enter image description here

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