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

R语言:季度时间序列共享X轴堆叠图绘制及X轴显示问题求助

解决方案

问题分析

使用ts.plot单独绘图时X轴显示异常,堆叠时存在多余间距,核心原因是默认轴标签格式和绘图边距设置不合理。通过自定义绘图布局、边距和轴标签可解决该问题。

完整代码实现

# 定义时间序列
A <- ts(c(1,2,3,4,2,3,6,3), start=c(2020,1), end=c(2021,4), frequency = 4)
B <- ts(c(2,3,6,3,4,5,2,1), start=c(2020,1), end=c(2021,4), frequency = 4)
C <- ts(c(4,5,2,1,3,2,5,3), start=c(2020,1), end=c(2021,4), frequency = 4)

# 配置绘图布局与边距:2行1列,消除上下图间距,预留全局X轴空间
par(mfrow = c(2, 1), mar = c(2, 4, 2, 1), oma = c(3, 0, 0, 0))

# 绘制AB组合图,隐藏X轴避免重复
ts.plot(A, B, col = c("red", "blue"), xaxt = "n", main = "时间序列A与B")
legend("topright", legend = c("A", "B"), col = c("red", "blue"), lty = 1, bty = "n")

# 绘制C单图,自定义X轴标签为季度格式
ts.plot(C, col = "green", main = "时间序列C")
axis(1, at = time(C), labels = paste0(year(time(C)), "Q", quarter(time(C))))

# 添加全局X轴标签
mtext("时间", side = 1, outer = TRUE, line = 1)

关键说明

  • par(mfrow = c(2,1)):将绘图区域设置为2行1列的垂直布局。
  • mar参数:调整每个子图的内边距,c(2,4,2,1)分别对应下、左、上、右边距,缩小上下图的相邻边距以消除空隙。
  • xaxt = "n":隐藏顶部图的X轴,实现X轴共享。
  • axis()函数:手动生成X轴标签,使用time(C)获取时间点,通过year()和quarter()函数将格式转为YYYYQN的季度形式,解决原X轴显示异常问题。
  • mtext():在全局外层添加统一的X轴标签,保证布局整洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 12:22:16