如何复现FPP3第7章多变量时间序列分面季度分组绘图?
FPP3第7章图7.4复现方案
你之前的代码存在两处核心偏差:一是选择了多余的变量,二是默认分面y轴范围统一,无法适配不同指标的数值区间。以下是可直接运行的实现代码:
# 加载依赖包 library(tidyverse) library(fpp3) # 基础复现代码 us_change %>% # 筛选原图用到的3个目标变量 select(Quarter, Production, Savings, Unemployment) %>% # 转换为长表适配ggplot分面逻辑 pivot_longer(cols = -Quarter, names_to = "指标", values_to = "变动值") %>% ggplot(aes(x = Quarter, y = 变动值)) + geom_line(linewidth = 0.4) + # 单列排列子图,每个子图y轴独立适配数值范围 facet_wrap(~指标, nrow = 3, scales = "free_y") + labs(x = "季度", y = "") + # 适配商务展示的简洁主题 theme_bw() + theme( strip.background = element_rect(fill = "white", color = "black"), strip.text = element_text(hjust = 0, size = 10) )
如果需要完全匹配原书的中文指标命名,可以增加标签映射步骤:
us_change %>% select(Quarter, Production, Savings, Unemployment) %>% pivot_longer(cols = -Quarter, names_to = "指标", values_to = "变动值") %>% # 替换为中文指标名 mutate( 指标 = case_match( 指标, "Production" ~ "工业生产季度变动百分比", "Savings" ~ "个人储蓄季度变动百分比", "Unemployment" ~ "失业率季度变动" ) ) %>% ggplot(aes(x = Quarter, y = 变动值)) + geom_line(linewidth = 0.4) + facet_wrap(~指标, nrow = 3, scales = "free_y") + labs(x = "季度", y = "") + theme_bw() + theme( strip.background = element_rect(fill = "white", color = "black"), strip.text = element_text(hjust = 0, size = 10) )
内容的提问来源于stack exchange,提问作者Russ Conte
相关产品推荐
相关产品推荐

