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

R ggplot geom_line绘图结果异常 Date列格式转换问题

问题判定

折线图异常确实是Date列格式错误导致的。
你CSV中的Date列存储的是带前后空格、包裹在引号内、带千分位逗号的Excel日期序列号文本,read_csv读入时会直接将其识别为字符类型;直接对带空格、逗号的字符串调用as.Date()无法完成有效转换,最终日期列转换失败,自然无法生成正确的时序折线。

修复步骤
  • 先对Date列做文本清洗:去除前后多余空格、删除数字间的千分位逗号
  • 将清洗后的文本转为数值型的Excel日期序列号,再按Excel的日期原点规则转成R的Date类型
  • 过滤Price列的空值、无效值时注意排除NA值,避免过滤逻辑失效
修正后可直接运行的代码
library(tidyverse) 

southsea <- read_csv("C:/Users/Kevin/OneDrive/Documents/Open University/Research/south sea bubble/southseatest.csv")

southsea <- southsea %>%
  mutate(
    Date = str_trim(Date), # 去除Date值前后的多余空格
    Date = str_remove_all(Date, ","), # 删除序列号里的千分位逗号
    Date = as.numeric(Date), # 转为数值型Excel日期序列号
    Date = as.Date(Date, origin= "1899-12-30") # 转换为标准日期格式
  ) %>%
  filter(!is.na(Price), Price > 0) # 过滤空值、无效价格值

ggplot(data= southsea, aes(x=Date,y=Price))+
  geom_line()

注:当x轴为正确的日期类型时,不需要额外添加group = 1参数,ggplot会自动识别连续时序维度,生成正确的连续折线。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:33:22