scale_datetimeがうまくいかなかったけど解決した

ggplot2でDate型のデータを用いた際のデフォルトの表示が気に入らない。
scale_x_datetime(format = "%Y-%m-%d")みたいに指定することで日付表示を変更できる、とサイトには書いてあるのだがうまくいかない。
が、POSIXct型に変更するとうまくいったのでメモしておく。


気に入らない

うまくいかない

うまくいった

library(ggplot2)
smp <- data.frame(y = rnorm(n=100), date = 1:100)
smp$date <- as.Date(smp$date, origin="2001-01-01")
ggplot(smp, aes(date, y)) + geom_line()

# 日付の表示を変更しようとするとうまくいかない
ggplot(smp, aes(date, y)) + geom_line() + scale_x_datetime(format = "%Y-%m")

# Date型からPOSIXct型に変更するとうまくいく
smp$date2 <- as.POSIXct(smp$date)
ggplot(smp, aes(date2, y)) + geom_line() + scale_x_datetime(format = "%Y-%m")