首页 > 解决方案 > 绘制 tsibble 时如何获得更详细的 x 轴?

问题描述

我目前正在关注《预测:原则与实践》,第 3 版,可在线获取。要复制我的问题,您需要安装然后加载包fpp3。然后,您需要在 R(或 RStudio)中执行以下操作:

PBS %>%
  filter(ATC2 == "A10") %>%
  select(Month, Concession, Type, Cost) %>%
  summarise(TotalC = sum(Cost)) %>%
  mutate(Cost = TotalC / 1e6) -> a10

在定义 之后a10,就需要绘制tsibble,如下所示:

autoplot(a10, Cost) +
  labs(y = "$ (millions)",
       title = "Australian antidiabetic drug sales")

然后你应该得到这样的情节:

x 轴有些错误的 tsibble 图

在大多数情况下这很好,但我希望在 x 轴上至少有两倍的刻度,如果它们可以旋转 45° 左右,可能更多。我尝试了一些看起来很有希望的东西,它被添加scale_x_date(date_labels = "%m-%Y")到 plot 对象中,但只适用于类对象,Date这里我们正在处理yearmonths. 在这些情况下如何获得更详细的 x 轴?

标签: rplottimetime-seriestsibble

解决方案


一种方法可能是将班级更改Month为班级日期并申请scale_x_date()

a10 %>% 
  mutate(Month = as.Date(Month)) %>% 
  ggplot(aes(x=Month, y=Cost)) + 
  geom_line() +
  scale_x_date(date_breaks = "1 year")

在此处输入图像描述


推荐阅读