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

如何创建以时间范围为X轴、展示注册时间的事件注册数据可视化图表?

问题描述

现有一个包含以下列的DataFrame:

  • event_number:事件ID
  • register_start:事件开始时间(datetime类型)
  • register_deadline:事件注册截止时间(datetime类型)
  • customer_id:客户(参与者/注册者)ID
  • registered_on:客户注册该事件的时间日志(datetime类型)

尝试过创建透视表,但无法生成所需图表。需求是:创建一个图表,将X轴刻度设为对应事件的register_start到register_deadline时间范围,在该范围内绘制指定事件的所有registered_on记录。

曾尝试的代码:

df1.plot(xticks=df1.iloc[1], y='registered_on')
解决方案

1. 筛选目标事件数据

先提取指定事件的所有记录,并获取该事件的注册时间范围:

import pandas as pd
import matplotlib.pyplot as plt

# 替换为你要分析的目标事件ID
target_event = "EV001"
event_data = df[df['event_number'] == target_event].copy()

# 获取当前事件的注册起止时间(同一事件的起止时间应该一致,取第一条即可)
event_start = event_data['register_start'].iloc[0]
event_deadline = event_data['register_deadline'].iloc[0]

2. 绘制单条注册记录散点图

用散点图直观展示每个用户的注册时间点,锁定X轴为事件的注册时间范围:

plt.figure(figsize=(10, 4))

# 用竖线标记每个注册时间点
plt.scatter(event_data['registered_on'], [1]*len(event_data), marker='|', s=300, color='#2ecc71', label='用户注册')

# 强制X轴范围为事件的注册起止时间
plt.xlim(event_start, event_deadline)

# 图表美化
plt.xlabel('时间')
plt.title(f'事件{target_event} 注册时间分布')
plt.yticks([])  # 隐藏Y轴刻度,仅保留标记意义
plt.legend()
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

3. 可选:统计时段注册人数(直方图)

如果需要查看不同时间段的注册人数分布,用直方图更合适:

plt.figure(figsize=(10, 4))

# 按时间区间统计注册人数,bins可根据需求调整数量或自定义区间
plt.hist(event_data['registered_on'], bins=15, range=(event_start, event_deadline), edgecolor='black', color='#3498db')

plt.xlim(event_start, event_deadline)
plt.xlabel('时间')
plt.ylabel('注册人数')
plt.title(f'事件{target_event} 各时段注册人数分布')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 18:35:30