2011-06-01 3 views
5

मैं फ़ाइल नाम पद्धति का उपयोग कर अलग बिटमैप फ़ाइलों में एक से अधिक भूखंडों प्लॉट करने के लिए (उदाहरण के लिए, जेपीईजी के लिए) चाहते हैं आर में file.%03d.jpg मैं की तरह कुछ उपयोग करने की कोशिश:अलग जेपीईजी फाइलों में आर में एकाधिक प्लॉट कैसे पेज करें?

somevar <- 1 
jpg(paste(sep='',filename,'.%03d.jpg')) 
while(somevar <= n) 
{ 
    plot(data[somevar]) 
    dev.new() 
    somevar <- somevar + 1 
} 
dev.off() 

लेकिन यह एक .jpg फ़ाइल बनाता है और कई Rplotnnn.pdf फाइलें। मैं डिफ़ॉल्ट डिवाइस को jpg पर कैसे बदल सकता हूं, और कस्टम फ़ाइल नाम पैटर्न का उपयोग कर सकता हूं?

+0

मैं नाम 'my.names <- c ("plot1.jpg", "plot2.jpg", "plot2.jpg", "plot3.jpg") का एक वेक्टर बनाउंगा और' (my.names में fn) के लिए ' जेपीईजी (एफएन) ... '। –

+2

क्या कोई कारण है कि आप वेक्टर प्रारूप के बजाय जेपीईजी का उपयोग क्यों करते हैं? मैं सुझाव दूंगा कि आप इसके बजाय पीएनजी या पीडीएफ प्रारूप का उपयोग करें। कॉल समान है, डिवाइस को सेट करने के लिए 'jpg' के बजाय' png' का उपयोग करें। वास्तव में – Andrie

+0

। मैं अब 'पीएनजी' का उपयोग करता हूं, इसके अलावा, समस्या आर – Vilinkameni

उत्तर

6

मुझे लगता है कि यह काम करना चाहिए

somevar <- 1 
while(somevar <= n) { 
    jpg(sprintf("%s%03.jpg", filename, somevar)) 
    plot(data[somevar]) 
    dev.off() 
    somevar <- somevar + 1 
} 

प्लॉटिंग डिवाइस उद्घाटन (यहाँ jpeg(...)) dev.off() करने से चला जाता है। आप फ़ाइल नाम को नियंत्रित करते हैं (जहां मैंने paste() से sprintf()) और लूप का उपयोग ठीक किया था।

+0

में कुछ हद तक गूढ़ 'देव' तंत्र से संबंधित थी धन्यवाद! इसने काम कर दिया। – Vilinkameni

+0

पेस्ट पर sprintf की पसंद क्यों? –

+1

'पेस्ट() 'प्रारूपित नहीं है, जबकि' sprintf()' करता है। –

0

यदि आप अपने कोड से dev.new() को हटाते हैं तो क्या होता है? जब तक आप jpg डिवाइस पर लिखते रहते हैं तो jpg फ़ंक्शन/डिवाइस को आपके पैटर्न के बाद कई फाइलें उत्पन्न करनी चाहिए (डिवाइस। नया कॉल हर बार एक नया डिवाइस शुरू करता है, इसलिए पीडीएफ फाइलें)।

+0

उस मामले में केवल एक 'jpg' फ़ाइल बनाई गई थी। – Vilinkameni

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