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

使用R中ts函数绘制日度时间序列图时如何修改x轴日期显示

R语言日度时间序列x轴显示具体日期解决方案

你遇到的问题是ts类日度数据默认绘图时x轴显示为小数格式的年份,可通过以下两种方案调整:

方案1:使用R基础绘图系统自定义x轴

首先生成对应日期序列,再手动绘制x轴标签:

# 加载示例数据
ts_data <- structure(c(66588, 65998, 65169, 61602, 34027, 35742, 59925, 
71704, 75102, 75495, 69609, 80508, 32321, 70764, 79876, 75412, 
85663, 76178, 43812, 36239, 83926, 90303, 86982, 90570, 79069, 
47774, 49293, 82493, 89992, 100158, 84245, 85948, 44326, 38927, 
84494, 90638, 91097, 70238, 43515, 31359, 28645, 86979, 92625, 
86652, 93317, 71832, 37017, 35785, 82186, 73513, 73174, 85774, 
67636, 42980, 30624, 69381, 79719, 45178, 69105, 71137, 32572, 
28636, 72140, 79726, 69389, 68333, 66964, 28935, 24619, 77359, 
73295, 73380, 78886, 63430, 38911, 25200, 72715, 76692, 74592, 
85536, 67009, 40709, 30148, 75445, 79219, 82039, 76855, 76490, 
35819, 37498, 73453, 80486, 67467, 49768, 79670, 43520, 30434, 
78926, 95601, 83391, 37936, 66017, 39637, 37156, 52911, 85748, 
88092, 85149, 78700, 37948, 39846, 80609, 95367, 74042, 98832, 
82288, 44178, 38903, 87822, 115228, 73602, 79277, 64134, 33704, 
27804, 64903, 43836, 65163, 65165, 54556, 27783, 22703, 62504, 
54022, 53725, 57737, 48504, 20937, 17031, 45022, 57736, 52789, 
45591, 34339, 34126, 15271, 27592, 54517, 49757, 108732, 38091, 
18129, 18999, 41411, 48013, 42283, 40904, 37582, 20503, 15143, 
32316, 40716, 40054, 42159, 43033, 13893, 12085, 34885, 32443, 
39982, 33933, 31142, 13957, 14471, 37613, 41714, 36315, 33887, 
28388, 14404, 13103, 30872, 30671, 31024, 27345, 24699, 13210, 
10466, 24589, 27345, 26280, 25565, 21804, 12915, 9154, 14304, 
13771, 30891, 15951, 14314, 10615, 6645, 13406, 14780, 34407, 
11202, NA, 9458, 7884, -573, 36473, 24611, 19438, 15688, 8668, 
14423, 15395, 17756, 27527, 18578, 13466, 9004, 10425, 20528, 
17893, 15591, 18172, 16451, 8639, 6918, 7359, 7852, 14288, 15239, 
11250, 5738, 7446, 12969, 15609, 16853, 14502, 11716, 6204, 5797, 
13424, 17184, 15268, 11965, 10693, 6761, 3838, 6431, 14661, 13352, 
13321, 11866, 6115, 5638, 10948), .Tsp = c(2021, 2021.70684931507, 
365), class = "ts")

# 生成对应日期序列
date_seq <- seq.Date(as.Date("2021-01-01"), by = "day", length.out = length(ts_data))

# 绘图时关闭默认x轴
plot(ts_data, xaxt = "n", xlab = "日期", ylab = "数值")

# 自定义x轴,可调整间隔参数控制标签密度,此处每隔15天显示一次
axis(1, at = seq(1, length(ts_data), 15), labels = date_seq[seq(1, length(ts_data), 15)], las = 2)

参数说明:las = 2 表示x轴标签垂直显示,避免重叠。

方案2:使用ggplot2绘制(更灵活可调)

通过将ts数据转为带日期索引的格式,直接用ggplot的日期轴配置:

# 加载依赖包
library(ggplot2)
library(zoo)

# 转为带日期索引的zoo对象
zoo_data <- zoo(ts_data, order.by = date_seq)

# 转为数据框
df <- data.frame(
  date = index(zoo_data),
  value = coredata(zoo_data)
)

# 绘图
ggplot(df, aes(x = date, y = value)) +
  geom_line() +
  # 调整日期间隔和显示格式,此处每2周显示一次,格式为年-月-日
  scale_x_date(date_breaks = "2 weeks", date_labels = "%Y-%m-%d") +
  # 调整x轴标签角度避免重叠
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  labs(x = "日期", y = "数值")

如果需要调整标签显示密度,修改date_breaks参数即可:比如填"1 week"为每周显示,"1 month"为每月显示。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:45:04