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

如何用R对5年夏小时数据绘制含均值线、最值的时序图?

实现方法

一、数据汇总(计算小时维度的均值、最小值、最大值)

先加载所需R包,从datetime字段提取小时信息,再按小时分组计算各变量的统计指标:

# 加载必要包
library(tidyverse)
library(lubridate)

# 读取你提供的数据集
df <- structure(list(datetime = structure(c(1559347200, 1559350800, 
1559354400, 1559358000, 1559361600, 1559365200, 1559368800, 1559372400, 
1559376000, 1559379600), tzone = "UTC", class = c("POSIXct", 
"POSIXt")), BUSwt = c(77.8154, 77.2538, 76.9325, 76.81235, 76.6544, 
76.3403, 76.16165, 76.22375, 76.47035, 76.74395), MBwt = c(78.3653, 
78.53495, 78.6074, 78.30725, 78.0368, 77.9477, 77.8946, 77.927, 
78.12455, 78.23615), SUSwt = c(76.2575, 76.0055, 75.7265, 75.425, 
75.137, 74.849, 74.651, 74.624, 74.696, 74.8535)), row.names = c(NA, 
-10L), class = c("tbl_df", "tbl", "data.frame"))

# 提取小时,按小时分组计算统计量
hourly_stats <- df %>%
  mutate(hour = hour(datetime)) %>%
  group_by(hour) %>%
  summarise(
    across(c(BUSwt, MBwt, SUSwt), 
           list(mean = mean, min = min, max = max), 
           .names = "{.col}_{.fn}")
  )

# 查看汇总结果
print(hourly_stats)

运行后会得到按小时分组的统计结果,每个变量对应均值、最小值、最大值三个指标。

二、绘制时间序列图

将汇总数据转为长格式后,用ggplot2绘制包含均值线、最小-最大区间的时间序列图:

# 转换为长格式,方便可视化
long_stats <- hourly_stats %>%
  pivot_longer(
    cols = -hour,
    names_to = c("variable", "stat"),
    names_sep = "_",
    values_to = "value"
  ) %>%
  pivot_wider(names_from = stat, values_from = value)

# 绘制时间序列图
ggplot(long_stats, aes(x = hour)) +
  # 绘制最小-最大区间填充
  geom_ribbon(aes(ymin = min, ymax = max, fill = variable), alpha = 0.2) +
  # 绘制均值线
  geom_line(aes(y = mean, color = variable), linewidth = 1) +
  # 设置坐标轴与标题
  labs(
    x = "小时",
    y = "数值",
    title = "5年6-9月各变量小时统计量时间序列",
    color = "变量",
    fill = "变量"
  ) +
  theme_minimal() +
  scale_x_continuous(breaks = 0:23) # 显示0-23所有小时刻度

生成的图表会清晰展示5年间同一小时的变量变化规律,均值线搭配上下区间填充,直观呈现数据的集中趋势与波动范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 13:10:03