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

如何在ggplot2的X轴仅显示时间范围内的部分日期?

解决ggplot日期X轴过于拥挤的问题

要让X轴只显示间隔90天的日期,你可以在ggplot代码中添加scale_x_date()函数自定义X轴刻度,具体修改如下:

修改后的完整代码

ticker <- "AMAT"

price_data <- returns_long %>% filter(Ticker == ticker, Series == "Close")

price_chart <- ggplot(price_data) +
  geom_line(aes(x = Date, y = Value, group=1), color = "#66CC00") +
  xlab("日期") +
  ylab("股价") +
  labs(
    title = paste0(price_data$Name[1], " (", ticker, ")"),
    subtitle = price_data$Sector[1],
    caption = "数据来源:Yahoo! Finance"
  )+
  scale_y_continuous(labels = scales::dollar) +
  # 新增的X轴日期控制代码
  scale_x_date(
    breaks = seq(min(price_data$Date), max(price_data$Date), by = "90 days"),
    date_labels = "%Y-%m-%d"  # 可按需调整格式,比如改成"%Y/%m"只显示年月
  ) +
  theme(
    plot.background = element_rect(fill = "#17202A"),
    panel.background = element_rect(fill = "#17202A"),
    axis.text.x = element_text(color = "#ffffff", angle = 45, hjust = 1, vjust = 1),
    axis.text.y = element_text(color = "#ffffff"),
    axis.title.x = element_text(color = "#ffffff"),
    axis.title.y = element_text(color = "#ffffff"),
    plot.title = element_text(color = "#ffffff"),
    plot.subtitle = element_text(color = "#ffffff"),
    plot.caption = element_text(color = "#ffffff", face = "italic", size = 6),
    panel.grid.major.x = element_blank(),
    panel.grid.major.y = element_line(color = "#273746"),
    panel.grid.minor.x = element_blank(),
    panel.grid.minor.y = element_blank(),
    legend.position = "none"
  )
price_chart

关键说明

  • breaks = seq(...):通过seq()生成从数据集最早日期到最晚日期、间隔90天的刻度点,确保只显示指定间隔的日期。
  • date_labels:设置日期显示格式,比如"%Y-%m-%d"会显示为2023-01-01,简化需求可改为"%Y/%m"只显示年月。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 18:31:02