【发布时间】:2022-06-14 22:53:26
【问题描述】:
我有一个包含 4 列的数据框。这包括 week_no(一年中的一周)、日期(该周的星期五日期)、年份、销售额。
我想绘制一个折线图,按周显示冬季期间的销售额。冬季从第 50 周到第 4 周。每个冬季都应该有自己的线条和颜色。
示例数据帧代码
library(ggplot2)
df <- data.frame(
week_no = c("50","51","52","1","2","3","4","50","51","52","1","2","3","4"),
date = c("2018-12-14", "2018-12-21", "2018-12-28", "2018-01-04", "2018-01-11", "2018-01-18", "2018-01-25", "2019-12-13", "2019-12-20", "2019-12-27", "2020-01-03", "2020-01-10", "2020-01-17", "2020-01-24"),
year = c("2018", "2018", "2018", "2019", "2019", "2019", "2019", "2019", "2019", "2019", "2020", "2020", "2020", "2020"),
sales = c(546,873,532,424,235,321,531,865,869,458,234,654,345,984))
示例数据帧
| week_no | date | year | sales |
|---|---|---|---|
| 50 | 2018-12-14 | 2018 | 546 |
| 51 | 2018-12-21 | 2018 | 873 |
| 52 | 2018-12-28 | 2018 | 532 |
| 1 | 2018-01-04 | 2019 | 424 |
| 2 | 2018-01-11 | 2019 | 235 |
| 3 | 2018-01-18 | 2019 | 321 |
| 4 | 2018-01-25 | 2019 | 531 |
| 50 | 2019-12-13 | 2019 | 865 |
| 51 | 2019-12-20 | 2019 | 869 |
| 52 | 2019-12-27 | 2019 | 458 |
| 1 | 2020-01-03 | 2020 | 234 |
| 2 | 2020-01-10 | 2020 | 654 |
| 3 | 2020-01-17 | 2020 | 345 |
| 4 | 2020-01-24 | 2020 | 984 |
我已经尝试了下面的代码,它给出的结果与我需要的结果接近,但年份不匹配,并且周顺序连续运行 1-52。
我希望 x 轴按 50、51、52、1、2、3 排序,并且每一行都按日期顺序而不是年份类似地显示数据。
winter_line_plot
我尝试使用 x 轴的日期,但我的结果显示一条连续的线,而不是不同冬季的不同颜色/线。
帮助表示赞赏:)
【问题讨论】:
-
几乎重复复制到stackoverflow.com/questions/12774210/… 和许多其他线程。您需要创建一个包含年和周作为级别的因子
标签: ggplot2 data-visualization