1

毎年 4 月 1 日から始まり、次の太陽年の 3 月 31 日までの会計年度に関するデータがあります。

df <- data.frame(date = seq(as.POSIXct("2008-04-01"), by="month", length.out=49),
                 var  = rnorm(49))

head(df,3)
        date         var
1 2008-04-01  0.04265025
2 2008-05-01 -1.59671801
3 2008-06-01  0.4909673 

df私が得たプロットlibrary(ggplot2); ggplot(df) + geom_line(aes(date, var))

ここに画像の説明を入力

さて、私が興味を持っているのは、「2009-04-01」に配置された「2009」ラベルを言うことです。これは、2009 年度の実際の開始であるためです。次のコードでそれを取得することができました。

ggplot(df) + geom_line(aes(date, var)) +
  scale_x_datetime(breaks = df$date[months(df$date)=="April"],
                   labels = date_format("%Y"))

これは正しく与えます:

ここに画像の説明を入力

私の質問は (最後に :-) ) 会計年度を表示するためのより良い方法と、最終的には上記よりも優れたコードを持っている人がいますか?

4

1 に答える 1

3

geom_rect会計年度を強調するために使用できます。元のプロットを として保存すると仮定して、次pを試してください。

bgdf <- data.frame(xmin=as.POSIXct(paste0(2008:2011,"-04-01")),
                   xmax=as.POSIXct(paste0(2009:2012,"-04-01")),
                   ymin=min(df$var),ymax=max(df$var),alpha=((2008:2011)%%2)*0.1)
p + geom_rect(aes(xmin=xmin,xmax=xmax,ymin=ymin,ymax=ymax),
              data=bgdf,alpha=bgdf$alpha,fill="blue")
于 2013-04-26T17:12:29.020 に答える