2016-03-25 2 views
11

scale_x_datetimeが適用された時に時差がシフトされた理由を調べるのに時間を費やしました。 Date/Timeカラムが作成されたときにタイムゾーンを指定しようとしました。私はパッケージスケールからggplotとscale_x_datetime()を使用しました。時差は間違っていましたが、データポイントは日付/時間列の時間と一致しませんでした。R:as.POSIXct私のデータセットのtimezoneとscale_x_datetimeの問題

ここに私のデータセットを扱ういくつかの手順があります。

DF$DateTime<-as.POSIXct(DF$timestamp,format="%m/%d/%y %H:%M", tz="America/Toronto") 
    DF$Date<-as.Date(DF$DateTime) 

    lims <- as.POSIXct(strptime(c("2015-07-21 00:00","2015-07-23 00:00"), format = "%Y-%m-%d %H:%M"), tz="America/Toronto")  

    ggplot(DF) + geom_line(aes(x=DateTime, y=-Diff,group=Date)) + scale_x_datetime(limits =lims, breaks=date_breaks("2 hour"), labels=date_format("%m/%d %H:%M")) 

私はここで何かを見逃しますか?それを理解するのを助けてください。 多くの感謝!

答えて

11

機能date_format()は、デフォルトで"UTC"に設定されたtz引数をとります。したがって、ラベルはUTCに変換されます。タイムゾーン「アメリカ/トロント」を使用するには、次の操作を行うことができます

scale_x_datetime(limits = lims, breaks = date_breaks("2 hour"), 
    labels = date_format("%m/%d %H:%M", tz = "America/Toronto")) 

この引数は、バージョン0.2.5で導入されました。 date_format()を使用してUTC以外のタイムゾーンでプロットを作成するコードは、更新後に変更する必要があります。

+2

data_formatにtzを指定する必要があります。あなたの投稿にはタイプがあります。ラベル= date_format( "%m /%d%H:%M"、tz = "アメリカ/トロント") –

+0

@ Kuo-HsienChangあなたは正しいので、間違いを修正しました。それについて申し訳ありません! – Stibu

関連する問題