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

ggplot使用geom_line绘制时间序列仅显示部分数据如何解决

问题原因及排查解决方法

核心原因

大概率是日期列解析错误:你当前用dmy()(日月年顺序)解析原始CSV的日期列,但EIA是美国机构,公开的CSV文件默认日期格式为月/日/年(mdy),比如1/13/2023代表2023年1月13日。用dmy()解析时,会把字符串第二个位置的数值当作月份,一旦该数值超过12,就会返回NA,最终只有日期字符串第二个位置<=12的记录能保留,所以看起来只有1月的节点被渲染。

排查步骤

  • 先验证日期解析是否正确,执行以下代码查看原始日期和转换后日期的对应关系,统计空值数量:
# 查看前20条日期转换结果
head(raw_data[, c("date", "date2")], 20)
# 统计转换后为空的日期数量
sum(is.na(raw_data$date2))
# 查看清洗后数据的日期范围和行数,10年左右的月度数据应该有120条左右记录
range(frmt_data$date2)
nrow(frmt_data)
  • 再验证价格列是否存在空值:
sum(is.na(frmt_data$price))
  • 如果上述检查都无异常,执行head(raw_data)查看CSV导入是否正常,确认是否存在分隔符识别错误、列错位的问题。

解决方法

如果确认是日期解析错误,只需要把日期转换的代码从dmy(date)改成mdy(date)即可:

raw_data <- read.csv("H:/Projects/gas prices2.csv") %>%
  mutate(date2 = as.Date(mdy(date)))

如果解析后还有少量NA值,可以检查原始CSV里对应行的日期格式是否存在异常,手动修正或者删除异常行即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 05:36:11