R ggplot2绘制库存阶梯图时geom_segment指定日期参数报错如何解决
问题原因
你触发报错的核心原因是geom_segment中填写的日期参数没有被识别为日期类型:直接写2020-12-04时R会默认将其识别为算术表达式(即2020减12减4),计算得到的是数值型结果,和X轴映射的日期/POSIXct类数据格式不匹配,因此触发时间格式校验报错。
修复方案
需要做对应调整:
- 给日期值加引号,避免被R识别为算术运算
- 用日期转换函数将字符串转为和
Dia列一致的日期类型,和X轴格式匹配 - (可选优化)手动指定的固定参数不需要放在
aes()中,直接作为geom_segment的参数即可,避免不必要的变量映射冲突
修正后代码如下:
Datos <- read_excel(ruta_excel, sheet = "CDSYG", range = "J4:K45") p <- ggplot(data = Datos, aes(x = Dia, y = Nivel)) # 若Dia列为Date格式,用as.Date转换 p + geom_step() + geom_segment(x = as.Date("2020-12-04"), y = 5, xend = as.Date("2020-12-12"), yend = 5) # 若Dia列为POSIXct格式,替换为as.POSIXct转换即可 # p + geom_step() + # geom_segment(x = as.POSIXct("2020-12-04"), y = 5, xend = as.POSIXct("2020-12-12"), yend = 5)
内容的提问来源于stack exchange,提问作者Francisco Daniel Quiroz
相关产品推荐
相关产品推荐

