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

如何将POSIXct时间转为数值并绘制日长变化折线图?

将POSIXct时间转为数值小时并绘制折线图

步骤1:转换POSIXct时间为数值型小时

要把hour列的POSIXct时间转成带小数的小时数值(比如06:30转为6.5),核心逻辑是提取小时数,加上分钟数除以60的结果。

方法一:用lubridate包(代码更简洁)

先加载lubridate包,再计算数值小时:

# 未安装的话先执行安装:install.packages("lubridate")
library(lubridate)

df$numeric_hour <- hour(df$hour) + minute(df$hour)/60

方法二:基础R实现(无需额外包)

通过strftime提取时和分,再转成数值计算:

df$numeric_hour <- as.numeric(strftime(df$hour, "%H")) + as.numeric(strftime(df$hour, "%M"))/60

步骤2:绘制折线图

可以用两种方式实现,按需选择:

方式一:ggplot2绘制(样式更美观)

# 未安装的话先执行安装:install.packages("ggplot2")
library(ggplot2)

ggplot(df, aes(x = day, y = numeric_hour)) +
  geom_line(color = "#2c3e50", linewidth = 1) +
  labs(x = "天数", y = "日长(小时)", title = "日长随天数变化折线图") +
  theme_minimal()

方式二:基础R绘制(轻量快捷)

plot(df$day, df$numeric_hour, type = "l", col = "darkblue", lwd = 2,
     xlab = "天数", ylab = "日长(小时)", main = "日长随天数变化折线图")

验证转换结果

可以查看前几行数据确认转换是否正确:

head(df[, c("hour", "numeric_hour")])

内容的提问来源于stack exchange,提问作者J.K Kim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 02:21:02