R语言ggplot如何调整日期坐标轴刻度?解决POSIXct无原点报错
解决方案
问题根源
你碰到的POSIXct报错,是因为直接给xlim传入日期字符串时,ggplot会默认尝试将其转为POSIXct类型,但缺少必要的时间原点参数;同时你写的日期范围顺序颠倒了(需早日期在前、晚日期在后)。另外原代码存在语法错误:aes()函数末尾缺少闭合括号。
修改后的完整代码
ggplot(W1_new, aes(x = Date, y = pH, color = Treatment)) + geom_point(pch = 19, size = 1, alpha = 1) + theme_classic() + theme(legend.title = element_blank()) + theme(legend.position = c(0.92, 0.11)) + scale_color_manual(labels = c("Ca-treated"), values = c("darkturquoise")) + scale_x_date(limits = as.Date(c("2000-07-18", "2020-07-17"))) + scale_y_continuous(limits = c(3, 6)) + facet_wrap(~Hor)
关键调整说明
- 用
scale_x_date()替代直接调用xlim,通过as.Date()将字符串日期转为Date类型,彻底规避POSIXct转换报错 - 日期范围参数必须按早日期在前、晚日期在后的顺序传入,否则坐标轴会显示异常
scale_y_continuous()用于设置y轴pH范围,相比直接用ylim,它不会自动过滤范围外的数据点(若需要过滤数据,可替换为coord_cartesian(ylim = c(3,6)))
内容的提问来源于stack exchange,提问作者Renata
相关产品推荐
相关产品推荐

