gpt4 book ai didi

r - 52周x轴ggplot2起点

转载 作者:行者123 更新时间:2023-12-01 15:56:35 29 4
gpt4 key购买 nike

我想创建一个类似于下面的图。基本上希望 x 轴从第 35 周开始到第 52 周,然后显示第 0-34 周。还没有真正能够找到解决方案。 x 轴似乎总是在第 0 周默认。我想我可以使用 week as.factor 并手动设置顺序,但这似乎需要很多工作。必须有一个更简单的解决方案。希望你能帮上忙。

2019 canada influenza

样本数据集。我没有为正常分发设置它......可能应该有。

set.seed(99)
fludata <-data.frame('year'= '2019', 'week'= seq(1,52,by =1), 'cases' = sample(0:17, 52, replace=T))

ggplot(fludata,aes(x=week, y = cases)) + geom_line()

最佳答案

这就是我的想法。您可以使用 tsibbleyearweek 转换为 yearweek。您可以使用 scale_x_yearweek 定义您想要的 date_breaks 并在标签中包含您想要的信息(例如,%U 仅表示一周, 或 %Y-%U 表示年-周)。如果省略年份,则可以直接将年份添加为单独的文本。

编辑 (2/2/21):scale_x_date 更改为 scale_x_yearweek

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_yearweek(date_breaks="2 weeks", date_labels = "%U")

plot with weeks ordered

关于r - 52周x轴ggplot2起点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59688046/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com