2011-12-07 27 views
7

में scale_x_datetime का अप्रत्याशित व्यवहार मेरे पास दैनिक एकत्रित डेटा के साथ निम्न डेटासेट है। ,ggplot2

R> toydata$date 
[1] "2011-11-04 23:59:59 EST" "2011-11-05 23:59:59 EST" 
[3] "2011-11-06 23:59:59 EST" "2011-11-07 23:59:59 EST" 
[5] "2011-11-04 23:59:59 EST" "2011-11-05 23:59:59 EST" 
[7] "2011-11-06 23:59:59 EST" "2011-11-07 23:59:59 EST" 

और

R> format(toydata$date, "%d-%b") 
[1] "04-Nov" "05-Nov" "06-Nov" "07-Nov" "04-Nov" "05-Nov" "06-Nov" "07-Nov" 

लेकिन जब मैं निम्नलिखित कोड

R> p <- ggplot(toydata, aes(x = date, y = coef, group = group)) 
R> pq <- p + geom_line(aes(colour = group)) + 
+ scale_x_datetime(major = "1 day", format = "%d-%b") 

मैं का उपयोग कर ggplot2 का उपयोग कर इसे साजिश करने का प्रयास करें:

R> toydata 
       date group coef 
1 2011-11-04 23:59:59  1 2.32 
2 2011-11-05 23:59:59  1 2.34 
3 2011-11-06 23:59:59  1 2.46 
4 2011-11-07 23:59:59  1 2.68 
5 2011-11-04 23:59:59  2 2.17 
6 2011-11-05 23:59:59  2 1.90 
7 2011-11-06 23:59:59  2 2.13 
8 2011-11-07 23:59:59  2 2.52 

Everythings ठीक से काम करने लगता है एक अप्रत्याशित परिणाम प्राप्त करें:

enter image description here

आप देख सकते हैं, नवंबर, 6 दोहराया गया है। मैं इस समस्या को एक्स में तारों के रूप में सिर्फ तारों के रूप में देखकर और तारीखों के रूप में नहीं कर सकता, लेकिन मैं उत्सुक हूं कि यह क्यों हो रहा है। क्या मुझसे साफ़ - साफ़ कुछ चीज़ चूक रही है?

उत्तर

4

बस tz='EST' निर्दिष्ट करें और यह मेरे लिए काम करता है। डेलाइट बचत समय स्विच की वजह से जो कुछ भी डिफ़ॉल्ट है, वह 6 नवंबर को दोहरा रहा है।

+0

धन्यवाद। यह काम करता हैं। बस स्पष्ट करने के लिए: 'scale_x_datetime (major = "1 दिन", प्रारूप = "% d-% b", tz = "ईएसटी") ' – griverorz

+0

यह देखने के लिए कि यह एक बग है, यह देखने के लिए जिथब पर जांचना उचित हो सकता है, और यदि इसकी रिपोर्ट नहीं हो रही है, तो बस यह एक फिक्स करने योग्य मुद्दा है। – joran

+0

हाँ ... मैं तारीख/समय की सामग्री की रिपोर्ट करने के लिए हमेशा डरता हूं क्योंकि बहुत सारी बारीकियां हैं और मैं एक विशेषज्ञ को परिभाषित नहीं कर रहा हूं। मुझे लगता है कि यहां कुछ स्तर पर डिफ़ॉल्ट आपके स्थानीय समय क्षेत्र में प्रदर्शित होना पड़ सकता है, जिस स्थिति में बार-बार 06-नवंबर सही हो सकता है। मैं 'अमेरिका/लॉस_एंजेलस' में हूं, इसलिए यदि मैं ईएसटी समय के अनुक्रम से शुरू करता हूं जो कि 24 घंटे अलग है (यानी संभवतः टिकों के लिए क्या उपयोग किया जाता है) और यह डेलाइट बचत संक्रमण को पार करता है, और फिर उन्हें अपने स्थानीय समय में प्रारूपित करता है , मुझे 06-नवंबर भी दोहराया जाता है। ... –