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

Python实现X、Y轴为24小时维度的事件起止时间散点图绘制

双时间轴事件分布散点图实现方案

核心实现逻辑:将每个事件的起始时分映射为X轴坐标,结束时分映射为Y轴坐标,双轴统一设置为00:00到23:59的全24小时范围,每个散点对应单条事件记录,可直观看出不同时段的事件时长分布、聚类特征。

分步落地操作

数据预处理

  • 读取CSV后,先对Start date、End date两列做标准时间格式解析,不需要手动拆分字符串匹配时分,pandas的时间解析能力可以直接兼容你提供的“月/日/年 时分”格式的时间戳。
  • 为了避免字符串排序、格式不匹配的问题,统一把时间转换为从00:00开始累计的分钟数作为坐标值:比如15:33对应数值为15*60+33=933,16:00对应数值为960,双轴的数值范围统一为0(对应00:00)到1439(对应23:59),覆盖完整24小时。
  • 提前过滤跨天事件:如果存在23点起始、次日凌晨结束的事件,需要单独标记分组,避免和当天凌晨结束的事件混淆,干扰分布判断。

绘图配置

  • 绘图时先添加一条Y=X的45度虚线参考线:理论上同一日内的事件结束时间必然不早于起始时间,参考线下方是符合逻辑的事件分布区,参考线上方的点即为时间录入错误、跨天的异常事件。
  • 坐标轴刻度按每1小时为间隔设置,把累计分钟数的刻度值替换为“HH:MM”格式的时间标签,同时锁定双轴范围为0-1440,避免自动缩放导致的时段覆盖不全。
  • 散点设置半透明属性(alpha=0.6左右),避免高密度区域的点堆叠看不清分布轮廓。
  • 如果数据量极大、散点堆叠严重,可以把纯散点替换为密度热力点图,更清晰呈现聚类位置。
可直接复用的实现代码
import pandas as pd
import matplotlib.pyplot as plt

# 替换为你自己的CSV文件路径
df = pd.read_csv("你的事件数据文件.csv")
# 解析时间列
df["Start date"] = pd.to_datetime(df["Start date"])
df["End date"] = pd.to_datetime(df["End date"])

# 将时分转换为全天累计分钟数
def convert_to_min(timestamp):
    return timestamp.hour * 60 + timestamp.minute

df["start_coord"] = df["Start date"].apply(convert_to_min)
df["end_coord"] = df["End date"].apply(convert_to_min)

# 初始化画布
plt.figure(figsize=(8, 8))
# 绘制45度参考线
plt.plot([0, 1440], [0, 1440], color="gray", linestyle="--", label="时长为0的参考线")
# 绘制散点
plt.scatter(df["start_coord"], df["end_coord"], alpha=0.6, s=20)

# 设置双轴的24小时刻度
tick_positions = list(range(0, 1441, 60))
tick_labels = [f"{hour:02d}:00" for hour in range(0, 25)]
plt.xticks(tick_positions, tick_labels, rotation=45)
plt.yticks(tick_positions, tick_labels)

# 锁定双轴范围,保证覆盖全天
plt.xlim(0, 1440)
plt.ylim(0, 1440)

plt.xlabel("事件起始时间")
plt.ylabel("事件结束时间")
plt.title("全时段事件起止时间分布散点图")
plt.legend()
plt.tight_layout()
plt.show()
分布分析技巧
  • 若散点沿45度参考线形成窄条聚集,说明对应时段的事件普遍时长很短,多为分钟级的快速事件。
  • 若散点和参考线的垂直距离越大,说明对应起始时段的事件整体时长越长。
  • 若出现明显的独立散点簇,即可定位到特定时长、特定起始时段的事件聚类,为后续事件分类提供依据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 14:54:03