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

如何在R中绘制时间序列并高亮缺失值

在R中绘制带缺失值的时间序列并高亮缺失值

首先构造你提供的示例数据框:

df <- data.frame(
  time = 1:5,
  Value = c(23, 12, NA, 18, NA)
)

方法一:基础绘图系统

先绘制正常的时间序列,再单独标记缺失值的位置:

# 绘制非缺失值的时序线与实心点
plot(Value ~ time, data = df, type = "b", pch = 16, col = "blue",
     xlab = "Time", ylab = "Value", main = "高亮缺失值的时间序列")

# 筛选缺失值对应的时间点,在y轴底部绘制红色空心圆标记
missing_pos <- df$time[is.na(df$Value)]
points(missing_pos, rep(par("usr")[3], length(missing_pos)),
       pch = 1, col = "red", cex = 1.2)

par("usr")[3]会自动获取当前绘图y轴的下限,确保标记点在图表底部,不会和有效数据重叠。

方法二:使用ggplot2包

如果习惯用ggplot2,代码更直观:

library(ggplot2)

ggplot(df, aes(x = time, y = Value)) +
  geom_line(color = "blue") +
  geom_point(data = subset(df, !is.na(Value)), color = "blue", size = 2) +
  # 在缺失值对应的时间点,用红色空心圆标记(位置设为比最小值低1)
  geom_point(data = subset(df, is.na(Value)),
             aes(y = min(Value, na.rm = TRUE) - 1),
             shape = 1, color = "red", size = 2) +
  labs(x = "Time", y = "Value", title = "高亮缺失值的时间序列") +
  theme_bw()

如果需要把缺失值标记在原本的y轴位置(比如数据中间),可以手动指定y值,比如根据你的数据范围设置为10或25,按需调整即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 13:20:41