2012-06-12 10 views
6

मैं ggplot() के साथ एक समय श्रृंखला प्लॉट करना चाहता हूं, strptime() के साथ बनाई गई समय रेखा।ggplot2 लोकेल श्रेणी LC_TIME को अनदेखा कर रहा है?

अभी तक ठीक है: मुझे अक्ष अक्ष पर महीनों के लिए जर्मन संक्षेप मिल रहा है, मेरा लोकेल Sys.setlocale("LC_TIME"="de_DE.UTF-8") पर सेट है। जब मैं अपने डेटा के साथ months() करता हूं, तो वे जर्मन में भी दिखाई देते हैं।

अजीब: जब मैं Sys.setlocale("LC_TIME"="en_GB.UTF-8") करने के लिए अपने स्थान निर्धारित करते हैं, months() मुझे अंग्रेजी महीनों दे देंगे लेकिन ggplot() समय अक्ष पर महीनों के लिए जर्मन संक्षिप्त रूपों के लिए जारी रहेगा।

मैंने Sys.setlocale() की कुछ अन्य श्रेणियों की कोशिश की है लेकिन इसका कोई फायदा नहीं हुआ है।

ggplot() कहां से चुनने के लिए भाषा लेते हैं?

+1

आप एक प्रतिलिपि प्रस्तुत करने योग्य उदाहरण बना सका? –

+0

खैर, पुनरुत्पादन प्रणाली के लोकेल पर निर्भर करता है। मेरा "de_DE.UTF-8" है। लेकिन निम्नलिखित जर्मन के लिए जर्मन संक्षेप में दिए जाएंगे, भले ही लोकेल अंग्रेजी पर सेट हो: Sys.setlocale ("LC_TIME", "en_GB.UTF-8"); डेटा <- data.frame (दिनांक = strptime (क्रमबद्ध करें (आईएसओडेट (2010, नमूना (1:12, 40, प्रतिस्थापित = TRUE), नमूना (1: 28,40, प्रतिस्थापित = TRUE)), प्रारूप = "% वाई -% m-% d "), मान = runif (4 0,10,12)); ggplot (डेटा, एईएस (दिनांक, मूल्य)) + geom_point() – lambu0815

उत्तर

0

देखो? कॉन्स्टेंट्स और उसके बाद माह.बैब के मूल्य को आप जो चाहते हैं उसे बदलें। शायद:

month.abb <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", 
"Oct", "Nov", "Dec") 
+0

month.abb पहले से ही अंग्रेजी में है। यह मोटे तौर पर नहीं है, क्या ggplot की तलाश नहीं है। – lambu0815

0

ठीक है, यह थोड़ा अजीब है।

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

3

मुझे एहसास है कि मैं इस प्रतिक्रिया के साथ कितनी देर तक हूं, लेकिन मुझे एक ही समस्या मिली और समाधान की तलाश करते समय आपके धागे पर ठोकर खाई।

मेरे लिए

Sys.setenv(LANGUAGE="en") 
Sys.setlocale("LC_TIME", "English") 

इसे हल।

0

सबसे आसान तरीका यह काम करने के लिए है:

Sys.setlocale("LC_ALL", "en_US.UTF-8") 

के बाद कि सभी ggplots एक उचित तिथि लेबल नहीं है।

इस पर्याप्त होना चाहिए आप केवल समय स्वरूप बदलने के लिए की जरूरत है:

Sys.setlocale("LC_TIME", "en_US.UTF-8")