You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ggplot图表中按年份添加次要刻度并显示每年X轴标签

解决ggplot季度累计收益图的X轴刻度与标签问题

修改后完整代码

library(ggplot2)
library(scales) # 需加载该包处理日期刻度

Quaterly_cumulative_returns %>% 
  ggplot(aes(x = Year, y = Return, colour = BANK, group = BANK)) + 
  geom_line(aes(linetype = BANK), size = 0.75) +
  labs(x = "季度数据 01APR2004-31MAR2022", y = "累计收益") +
  # 核心:设置X轴日期刻度与标签
  scale_x_date(
    breaks = date_breaks("1 year"),       # 每年生成一个主刻度标签
    minor_breaks = date_breaks("3 months"),# 按季度添加次要刻度
    labels = date_format("%Y"),           # 主标签只显示年份数字
    limits = as.Date(c("2004-04-01", "2022-03-31")) # 锁定数据时间范围
  ) +
  theme_classic(base_size = 15) +
  theme(
    legend.text = element_text(size = 10),
    axis.text.x = element_text(angle = 45, hjust = 1),
    panel.grid.minor = element_line(colour = "gray", size = 0.5)
  )

关键修改说明

  • 加载scales包:没有它的话,日期刻度相关的函数无法正常运行
  • scale_x_date参数适配需求:
    • breaks = date_breaks("1 year"):强制X轴每年显示一个主标签,满足“显示每年的X轴标签”要求
    • minor_breaks = date_breaks("3 months"):给每个年份下添加季度级的次要刻度,对应你的季度数据,实现“按年份添加次要刻度”的需求
    • labels = date_format("%Y"):把主标签简化为纯年份数字,避免冗余信息干扰阅读
  • 合并分散的theme调用:把原本零散的主题设置整合到一起,代码更整洁

内容的提问来源于stack exchange,提问作者Jimi13 ABC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 07:20:27