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

如何在R中创建按月份分组的累计发生次数折线图?

解决方案

1. 格式化日期列

首先确保日期列是datetime类型,这是后续分组统计的基础:

import pandas as pd
import matplotlib.pyplot as plt

# 示例数据(替换为你的实际DataFrame)
df = pd.DataFrame({
    'ID': [1, 2, 3],
    'DATE': ['1/02/2022', '1/07/2022', '2/14/2022']
})

# 转换日期格式(根据你的实际日期格式调整format参数)
df['DATE'] = pd.to_datetime(df['DATE'], format='%m/%d/%Y')

2. 按月统计事件数并计算累计值

用resample按自然月分组统计当月事件数,再通过cumsum()生成累计值:

# 按月分组统计当月事件数
monthly_data = df.resample('M', on='DATE').size().reset_index(name='monthly_events')

# 计算累计事件数
monthly_data['cumulative_events'] = monthly_data['monthly_events'].cumsum()

3. 绘制折线图

用matplotlib生成累计事件数的折线图:

plt.figure(figsize=(10, 6))
# 格式化x轴为年月字符串
plt.plot(monthly_data['DATE'].dt.strftime('%Y-%m'), monthly_data['cumulative_events'], marker='o', linestyle='-', color='#1f77b4')

plt.title('累计事件数月度变化')
plt.xlabel('月份')
plt.ylabel('累计事件数')
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

关键说明

  • 如果你的日期格式是DD/MM/YYYY,将pd.to_datetime的format参数改为%d/%m/%Y即可。
  • resample('M')会自动处理跨年度的月份分组,比手动提取年月更可靠。
  • 运行后monthly_data的验证输出:
DATE  monthly_events  cumulative_events
0 2022-01-31               2                  2
1 2022-02-28               1                  3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 04:53:30