ggplot で 3 か月幅のビンを持つヒストグラムを作成しようとしています。90日じゃなくて3ヶ月。日数に関しては、これは不等幅ビニングです。3 か月間隔の目盛りは正常に機能することに注意してください。私が問題を抱えているのはビンの幅です。ここでかなりの議論がありましたが、解決策が見つかりませんでした。
日付を理解し、R で ggplot2 を使用してヒストグラムをプロットする
ここに問題のステートメントがあります。明らかに、ggplot の外部で結果を集計してから、おそらく ggplot の要因としてそれらをプロットできることに注意してください。しかし、私はすべての ggplot ソリューションを探していました。
set.seed(seed=1)
dts<-as.Date('2012-01-01') + round(365*rnorm(500))
dts<-data.frame(d=dts)
g<-ggplot(dts,aes(x=d, y=..count..))
#this isnt what I want. It is 90 days, not 3 months.
#Setting binwidth=' 3 months' also doesnt work
g + geom_histogram(fill='blue',binwidth=90) +
scale_x_date(breaks = date_breaks('3 months'), #seq(as.Date('2008-1-1'), as.Date('2012-3-1'), '3 month'),
labels = date_format("%Y-%m"),
limits = c(as.Date('2010-1-1'), as.Date('2014-1-1'))) +
opts(axis.text.x = theme_text(angle=90))
#this doesnt work either.
#get: stat_bin: binwidth defaulted to range/30. Use 'binwidth = x' to adjust this.
# Error in `+.Date`(left, right) : binary + is not defined for Date objects
g + geom_bar(fill='blue') +
stat_bin(breaks=seq(as.Date('2010-1-1'), as.Date('2014-1-1'), '3 month')) +
scale_x_date(breaks = date_breaks('3 months'), #seq(as.Date('2008-1-1'), as.Date('2012-3-1'), '3 month'),
labels = date_format("%Y-%m"),
limits = c(as.Date('2010-1-1'), as.Date('2014-1-1'))) +
opts(axis.text.x = theme_text(angle=90))
おそらく答えは: ggplot は 3 か月幅 (または N か月幅) のビンを作成しません。