मैं एक ऐसा फ़ंक्शन लिखने की कोशिश कर रहा हूं जो एकाधिक पृष्ठों पर एक ggplot facet_wrap
प्लॉट प्लॉट करता है। यह सिर्फ एक हैक है, क्योंकि यह सुविधा ggplot2 सुविधा टू-डू सूची पर प्रतीत होती है। मैं उन पृष्ठों की संख्या को खोजने के लिए कुछ छोटी गणना करता हूं जिनकी मुझे आवश्यकता है, मेरे data.frame
की पंक्तियों की संख्या जो मुझे प्रति पृष्ठ आदि की आवश्यकता है। मुझे यह सब काम है।आर + जीजीप्लॉट: एकाधिक पृष्ठों पर प्लॉटिंग
pdf(filename)
for (i in seq(num_pages)){
slice = seq(((i-1)*num_rows)+1,(i*num_rows))
slice = slice[!(slice > nrow(df.merged))]
df.segment=df.merged[slice,]
p <- ggplot(df.segment, aes(y=mean,x=phenotype))
p <- p + geom_bar(stat="identity",fill="white",colour="black")
p + facet_wrap("ID",scales="free_y",ncol=n_facets,nrow=n_facets)
}
dev.off()
मेरे समस्या यह है कि, इस तरह पाश के लिए एक में यह सब लपेटकर, pdf()
और dev.off()
कार्यों के बीच में से, यह है कि पाश के लिए ggplot के लिए इंतजार करना अपनी बात करने के लिए प्रतीत नहीं होता है और अपने लूप के माध्यम से बहुत तेजी से चमकता है और एक अवैध पीडीएफ आउटपुट करता है।
अगर मैं i = 1
निर्धारित करते हैं, pdf()
शुरू, पाश के लिए अंदर से ऊपर कोड चलाने के लिए, तो i=2
निर्धारित करते हैं, तो कोड चलाने के लिए, और इतने जब तक मैं पाने पर ऊब (i=3
) फिर डिवाइस जिसके परिणामस्वरूप पीडीएफ है बंद कर देते हैं प्रतिभाशाली।
क्या कोई तरीका है कि मैं लूप के लिए अगली पुनरावृत्ति पर जाने से पहले अंतिम पंक्ति के लिए साजिश समाप्त करने के लिए प्रतीक्षा कर सकता हूं?
वाह जो पूरी तरह से काम करता है। मुझे नहीं पता था कि प्रिंट इस तरह इस्तेमाल किया जा सकता है। –
ऐसा इसलिए है क्योंकि 'p' एक वस्तु है। आपके कोड की अंतिम पंक्ति 'p' ऑब्जेक्ट को संशोधित करती है, लेकिन फिर आप इसे डिवाइस पर प्रिंट (') करना चाहते हैं। – JoFrhwld
हाँ, यह एक आम बाधा है। कभी-कभी मैं ggplot2 में एक फ़ंक्शन लिखता हूं, और अंतिम भाग के आस-पास 'प्रिंट() 'छोड़ देता हूं, इसलिए कोई आउटपुट नहीं मिलता ... – aL3xa