आर

2011-12-15 9 views
7

मैं निम्न कमांड का प्रयोग आर में कुछ डेटा की साजिश रचने हूँ कथानक का कम pdf फ़ाइल का आकार:आर

jj = ts(read.table("overlap.txt")) 
pdf(file = "plot.pdf") 
plot(jj, ylab="", main="") 
dev.off() 

परिणाम इस प्रकार है:

enter image description here

समस्या मेरे पास है है कि मुझे प्राप्त पीडीएफ फ़ाइल काफी बड़ी है (25 एमबी)। फ़ाइल आकार को कम करने का एक तरीका है? जेपीईजी एक विकल्प नहीं है क्योंकि मुझे एक वेक्टर ग्राफिक की आवश्यकता है।

+0

ठीक है आपने कुछ अज्ञात (बड़ी?) संख्या खंडों की साजिश रची है। सामान्य रूप से, पीडीएफ कुछ एन्कोड करने का सबसे खराब तरीका है। क्या आपने 'cairo()' के साथ eps या svg उत्पन्न करने का प्रयास किया है? –

+0

यह विशेष रूप से humungous नहीं दिखता है। पहली साजिश थोड़ा विस्तृत दिखती है। सारांश (जेजे) क्या कहता है? क्या यह 4e + 05 तक जा रहा है? – Spacedman

+0

कई बार दोहराए गए मानों के साथ चर के लिए, कोई भी 'राले' के साथ एक समाधान स्थापित करने में सक्षम हो सकता है जो बार-बार मानों को छोड़ देगा और चेंजपॉइंट्स के समय निर्देशांक को बचाएगा ... लेकिन यह काफी जटिल होगा, और नहीं लगातार भिन्न चर के लिए कुछ भी बचाएं –

उत्तर

6

आप लाइनों या बिंदुओं का एक बहुत सी रेखाचित्र बना रहे हैं। वेक्टर छवि प्रारूप जैसे कि पीडीएफ, पीएस, ईपीएस, एसवीजी इत्यादि उन सभी बिंदुओं, रेखाओं या अन्य वस्तुओं के बारे में तार्किक जानकारी बनाए रखते हैं जो जटिलता को बढ़ाते हैं, जो आकार और ड्राइंग समय का अनुवाद करते हैं, क्योंकि अंक बढ़ने की संख्या बढ़ जाती है। आम तौर पर वेक्टर छवियां कई तरीकों से सर्वोत्तम होती हैं, सबसे कॉम्पैक्ट, स्केल सर्वश्रेष्ठ, और उच्च गुणवत्ता वाले प्रजनन। लेकिन, यदि ग्राफिकल तत्वों की संख्या बहुत बड़ी हो जाती है तो पीएनजी जैसे रास्टर छवि प्रारूप में जाना सबसे अच्छा होता है। जब आप रास्टर पर स्विच करते हैं तो सर्वोत्तम छवि का उत्पादन करने के लिए पिक्सेल में और प्रिंट माप जैसी चीजों में, आप किस आकार की छवि चाहते हैं, यह जानने के लिए सबसे अच्छा है।

दूसरी दिशा से जानकारी के लिए, एक बड़ी रास्टर छवि, यह answer देखें।

1

प्लॉट की तरह दिखने के बिना मुश्किल बताना - स्क्रीनशॉट पोस्ट करना?

मुझे इसकी बहुत सारी विस्तृत लाइनों पर संदेह है और अधिकतर जानकारी शायद दिखाई नहीं दे रही है - बहुत सी चीजें ओवरलैपिंग या बहुत छोटी जानकारी। अपने डेटा को एक आयाम या किसी अन्य में पतला करने का प्रयास करें। मुझे संदेह है कि आप दृश्यमान जानकारी खो देंगे।

+0

मैंने साजिश जोड़ा। – alex

+1

ओवरप्लोटिंग को कम करने के लिए पीडीएफ के लिए पोस्ट प्रोसेसिंग टूल्स भी हैं। –

4

फ़ाइल आकार को कम करने का एक तरीका यह है कि आपके पास मूल्यों की संख्या कम हो। मान लें कि आप एक dataframe df कहा जाता है:

# take sample of data from dataframe 
sampleNo = 10000 
sampleData <- df[sample(nrow(df), sampleNo), ] 

मुझे लगता है कि R भीतर ही अन्य वैकल्पिक एक गैर वेक्टर उत्पादन होता है। R के बाहर आप पीडीएफ अनुकूलित करने के लिए एक्रोबैट प्रोफेशनल (जो मुफ़्त नहीं है) का उपयोग कर सकते हैं। यह फ़ाइल आकार को बहुत कम कर सकता है।

+0

एक समकक्ष नमूना संख्या प्राप्त करना बहुत अच्छा होगा। आप केवल एक सिर/पूंछ लेते हैं। –

4

आर का कौन सा संस्करण आप उपयोग कर रहे हैं? आर 2.14.0 में, pdf() में संपीड़न का समर्थन करने के लिए compress है। मुझे यकीन नहीं है कि यह आपकी मदद कैसे कर सकता है, लेकिन Pdftk और qpdf जैसी पीडीएफ फ़ाइलों को संपीड़ित करने के लिए अन्य टूल भी हैं। मेरे पास animation पैकेज में उनके लिए दो रैपर हैं, लेकिन आप सीधे कमांड लाइन का उपयोग करना चाह सकते हैं।

+0

संपीड़न ज्यादा मदद नहीं करता है। इसमें कुछ सरल एल्गोरिदम है। आप इसे बदल नहीं सकते सेट के एक समान नमूनाकरण के लिए शायद अधिकतर मदद मिलेगी। –

9

tools::compactPDF पर एक नज़र डालें - आपको या तो qpdf या ghostscript इंस्टॉल करने की आवश्यकता है, लेकिन यह पीडीएफ फ़ाइल आकार में एक बड़ा अंतर डाल सकता है।

+0

क्या आप इस बारे में एक उदाहरण दे सकते हैं? मैं 'उपकरण :: कॉम्पैक्ट पीडीएफ (फ़ाइल नाम, qpdf = Sys.getenv (" R_QPDF "," qpdf ") नहीं कर सकता, gs_cmd = Sys.getenv (" R_GSCMD "," "), gs_quality =" screen ", gs_extras = character (), अनुपात = 0.2) 'क्योंकि यह विफल रहता है। - - डेबियन 8.5 में स्थापित सभी आवश्यक उपकरण। क्या आपको कुछ अतिरिक्त आयात करने की ज़रूरत है? - मुझे लगता है कि यह जवाब अब स्टब है। –