Вот то, о чем я думал. Вы можете преобразовать year
и week
в yearweek
с помощью tsibble
. Вы можете использовать scale_x_date
, чтобы определить, где вы хотите date_breaks
, и включить информацию, которую вы хотите, в метки (например, %U
только для недели или %Y-%U
для года-недели). Если вы пропустите год, вы можете добавить годы в виде отдельного текста.
library(tsibble)
library(ggplot2)
set.seed(99)
fludata <-data.frame(
year = c(rep(2019, 18), rep(2020, 34)),
week = c(35:52, 1:34),
cases = sample(0:17, 52, replace=T)
)
fludata$yr_wk <- yearweek(paste(fludata$year, 'week', fludata$week))
fludata %>%
ggplot(aes(yr_wk, cases)) +
geom_line() +
scale_x_date(date_breaks="2 weeks", date_labels = "%U")
![plot with weeks ordered](https://i.stack.imgur.com/R434L.png)