Skip to contents

Computes week bins for date data in the x aesthetic, and allows the binning to be specified for the y aesthetic. This is mostly equivalent to ggplot2::stat_bin_2d() with the x aesthetic handling fixed to weeks.

Usage

stat_week_2d(
  mapping = NULL,
  data = NULL,
  geom = "tile",
  position = "identity",
  ...,
  bins.y = NULL,
  binwidth.y = NULL,
  breaks.y = NULL,
  center.y = NULL,
  boundary.y = NULL,
  closed.y = c("left", "right"),
  drop = TRUE,
  week_start = getOption("phylepic.week_start"),
  na.rm = FALSE,
  show.legend = NA,
  inherit.aes = TRUE
)

Arguments

mapping, data, geom, position, na.rm, show.legend, inherit.aes, ...

See ggplot2::stat_bin_2d.

bins.y, binwidth.y, breaks.y, center.y, boundary.y, closed.y

See the analogous parameters in ggplot2::stat_bin_2d.

drop

drop bins with zero count.

week_start

Day the week begins (defaults to Monday). Can be specified as a case-insensitive English weekday name such as "Monday" or an integer. Since you generally won't want to mix definitions, it is more convenient to control this globally with the "phylepic.week_start" option, e.g. options(phylepic.week_start = "Monday").

Value

ggplot2 stat layer.

Details

The computed aesthetics are similar to those of stat_bin_2d(), including after_stat(count), after_stat(density), and the bin positions and sizes: after_stat(xmin), after_stat(height), and so on.

Examples

library(ggplot2)

set.seed(1)
events <- rep(as.Date("2024-01-31") - 0:30, rpois(31, 6))
values <- round(rgamma(length(events), 1, 0.01))
df <- data.frame(date = events, value = values)

ggplot(df) + stat_week_2d(aes(date, value), week_start = "Monday")
#> `stat_week_2d()` using `bins.y = 30`. Pick better value with `binwidth.y`.