यह एक यह लग सकता है के रूप में सरल नहीं है। तकनीकी रूप से, यह समस्या ओएस/लोकेल/पीडीएफ लेखक/स्वीवे निर्भर है (देखें "आर स्थापना और प्रशासन", अध्याय 7)। चूंकि मैं जीएनयू/लिनक्स चला रहा हूं, यह "समाधान" मैक और विंडोज उपयोगकर्ताओं को संबोधित नहीं किया गया है। और सिर्फ चीजों को थोड़ा और जटिल बनाने के लिए, जीएनयू/लिनक्स डिस्ट्रोज़ अलग-अलग हैं, इसलिए एक शानदार मौका है कि अगर कुछ काम करता है, तो कहें, उबंटू, आर्क लिनक्स पर काम नहीं करता है।
मैं mtcars
डाटासेट का उपयोग किया जाएगा। के स्थानीय वर्णों के साथ कुछ बुनियादी ग्राफ बनाएँ:
pdf("foo.pdf")
boxplot(mpg ~ cyl, data = mtcars, ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja")
dev.off()
सर्बियाई भाषा का (दुर्घटना पाठ्यक्रम: "Potrošnja goriva" ईंधन की खपत के लिए खड़ा है, "Broj cilindara" # और सिलेंडरों के लिए खड़ा है "Dijagram raspršenja" बराबर है scatterplot के लिए)
अब, मैं चेतावनी की गुच्छा मिलता है:
Warning messages:
1: In title(ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja") :
conversion failure on 'Dijagram raspršenja' in 'mbcsToSbcs': dot substituted for <c5>
2: In title(ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja") :
conversion failure on 'Dijagram raspršenja' in 'mbcsToSbcs': dot substituted for <a1>
3: In title(ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja") :
conversion failure on 'Dijagram raspršenja' in 'mbcsToSbcs': dot substituted for <c5>
4: In title(ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja") :
conversion failure on 'Dijagram raspršenja' in 'mbcsToSbcs': dot substituted for <a1>
5: In title(ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja") :
conversion failure on 'Potrošnja goriva' in 'mbcsToSbcs': dot substituted for <c5>
6: In title(ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja") :
conversion failure on 'Potrošnja goriva' in 'mbcsToSbcs': dot substituted for <a1>
7: In title(ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja") :
conversion failure on 'Potrošnja goriva' in 'mbcsToSbcs': dot substituted for <c5>
8: In title(ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja") :
conversion failure on 'Potrošnja goriva' in 'mbcsToSbcs': dot substituted for <a1>
जबकि options(encoding = "CP1250")
चाल नहीं करता है - मैं एक ही चेतावनी मिलता है, pdf.options(encoding = "CP1250")
सुधार यह है, और यह pdf(file = "foo.pdf", encoding = "CP1250")
के लिए खड़ा है। इसलिए, मैं options(encoding = "native.enc")
के साथ अपना पुराना एन्कोडिंग वापस प्राप्त करूंगा, जैसा कि पहले बताया गया था और चीजें सही तरीके से प्राप्त करें pdf.options
सेट करें।
कुछ उपयोगकर्ताओं को दूर सिर्फ pdf.options
की स्थापना करके मिलता है, और Sweave साथ कोई समस्या नहीं मिलता है। तो, आपको कहीं भी कोड के इस हिस्से को सम्मिलित करना चाहिए।RNW फ़ाइल, इससे पहले कि आप अंकन शुरू:
<<setOptions, echo = FALSE, results = hide>>==
pdf.options(encoding = "CP1250")
@
और बाद में, बस करो:
<<plotTheFigure, echo = TRUE, fig = TRUE>>==
# I've set echo to TRUE intentionally, to prove my point here
boxplot(mpg ~ cyl, data = mtcars, ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja")
@
और एक ही परिदृश्य ggplot2 रेखांकन के लिए खड़ा है।
आप में से कुछ को सही आउटपुट मिलेगा, लेकिन मैं नहीं करता! और जैसा कि मैंने पहले कहा है, यदि आप उबंटू चला रहे हैं, तो यह एक अच्छा मौका है कि यह काम करेगा, लेकिन अभी के लिए, मैं इसे जीवित बनाने और आर्क में लात मारने के लिए प्रतीत नहीं कर सकता।
और अपने कीस्ट्रोक को बचाने के लिए, आप Sweave file, और/या PDF file (आर्क मशीन पर निष्पादित) डाउनलोड कर सकते हैं। जैसा कि आप देख सकते हैं, स्थानीय वर्ण प्लॉट फ़ंक्शन के भीतर सही तरीके से प्रदर्शित होते हैं, लेकिन स्वीवे के भीतर खराब हो जाते हैं। अब, अगर मैं ग्राफ को पीडीएफ फ़ाइल (स्वेविंग के बिना) में सहेजने का प्रयास करता हूं, तो मुझे correct output मिलता है।
तो, मैंने कुछ मुद्दों को हल किया है, लेकिन बहुत सी परीक्षण-और-त्रुटि कार्य करने के लिए छोड़ दिया गया है।
कृपया अपनी मशीन पर आरएनडब्ल्यू फ़ाइल चलाएं, और मुझे कुछ प्रतिक्रिया दें। चीजों को कम करने के लिए, मैंने प्रतिलिपि बनाई है जो आपकी सिस्टम जानकारी एकत्र करता है (व्यक्तिगत जानकारी नहीं) जो मुझे इस मामले में प्रासंगिक लगता है: यहां 'source, और यहां मेरा output है।
यह आपकी समस्या के लिए काम करता है: http://stackoverflow.com/questions/31221471/custom-graphical-device-in-sweave –