2016-02-16 70 views
0

我想檢查df data.frame中變量a每年的盒圖。我用下面的代碼來創建data.frame如何在ggplot2中移動x軸的日期(日期年)?

set.seed(123) 
date <- as.Date(seq(as.Date("1990-01-01"), as.Date("2015-12-31"), by = 1), format="%Y-%m-%d") 
a <- runif(9496, 3000, 120000) 
df <- data.frame(date, a) 
df[c(1:151,9313:9496), 2]<-NA 

,並使用此代碼

library(ggplot2) 
ggplot(df, aes(x=date, y=a, group=years(date)))+ 
    geom_boxplot()+ 
    scale_x_date(breaks = date_breaks("1 year"), 
       labels = date_format("%Y")) 

我得到這個數字

enter image description here

在X軸上年前後顯示boxplot。我如何將x軸和axis.text的勾號與箱線圖對齊?

回答

1

您可以設定日期休息時間在每年的中間:

scale_x_date(breaks = seq(as.Date("1990-06-30"), as.Date("2015-06-30"), by="1 year"), 
       labels = date_format("%Y")) 
+0

完美。謝謝 – aelwan

+0

我想再次用ggplot2_2.1.0運行代碼。但是,我得到這個錯誤 '錯誤在eval(expr,envir,enclos):找不到函數「年」 任何建議如何解決它? – aelwan

+0

你認爲它應該是一個單獨的問題? – aelwan