2011-12-07 12 views
7

次のデータセットでは、毎日収集されるデータがあります。ggplot2でのscale_x_datetimeの予期しない動作

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 

何もかも正常に動作するようです:

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使用して、それをプロットしようとすると、予期しない結果が発生する:

enter image description here

あなたが見ることができるように、11月、6が複製されます。私はxのラベルを日付ではなく文字列として扱うだけで、この問題を回避することができますが、なぜこれが起こっているのか不思議です。私は明白な何かを欠いていますか

答えて

4

tz='EST'と指定してください。何がデフォルトであっても、夏時間の切り替えにより11月6日が繰り返されます。

+0

ありがとうございました。できます。 'scale_x_datetime(major =" 1day "、format ="%d-%b "、tz =" EST ")' – griverorz

+0

これは報告されているバグかどうかgithubで確認する価値があるかもしれませんが、それを報告しない場合は、修正可能な問題の場合に備えて。 – joran

+0

そうです...私はいつも日々のことを報告することを心配しています。なぜなら、非常に多くのニュアンスがあり、専門家ではないからです。私は、あるレベルでのデフォルトは、あなた自身の現地時間帯で表示するかもしれないと考えています。その場合、06-Novの繰り返しは実際には正しいかもしれません。私は 'America/Los_Angeles'にいるので、24時間離れたEST時間(つまり、ダニのためにおそらく使用されているもの)と夏時間の移行を横断するシーケンスを開始してから、現地時間でフォーマットします私は06-11月も繰り返す。 ... –

関連する問題