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

短周期时间序列销售数据的最佳可视化绘图方法

这类3个月跨度的日度交易数据完全可以做时间序列可视化,你之前直接调用df.plot()效果差是两个核心问题导致的:

问题诊断
  • 未将new_date字段转换为标准时间格式,也未将其设置为数据框索引,pandas默认使用行号作为X轴,完全丢失时间维度的顺序逻辑
  • 单日对应多笔交易记录,直接用原始数据绘图时,程序会按行存储顺序连接相邻数据点,产生大量无意义的交叉折线,根本无法识别真实销售规律
推荐选型方案

按适配场景优先级排序:

1. 日度聚合折线图(首选,适合看整体趋势)

这是短周期日度销售数据最通用的可视化方式,先按日期聚合统计指标,再绘制带标准时间轴的折线,可以清晰展示销售波动、节假日/工作日效应。
示例代码:

import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.dates import WeekdayLocator, DateFormatter

# 预处理:转换日期格式
df['new_date'] = pd.to_datetime(df['new_date'])
# 按日期聚合,可按需选择统计口径
df_daily = df.groupby('new_date', as_index=True)['Sales'].agg(
    daily_total = 'sum',  # 统计日销售总额
    daily_avg = 'mean'    # 统计日平均客单价
)

# 绘图配置
fig, ax = plt.subplots(figsize=(12, 4), dpi=100)
df_daily['daily_total'].plot(ax=ax, color='#2b6cb0', linewidth=1.2)

# 优化X轴日期显示,按周打标签避免拥挤
ax.xaxis.set_major_locator(WeekdayLocator(interval=1))
ax.xaxis.set_major_formatter(DateFormatter('%m-%d'))
plt.xticks(rotation=45)
plt.xlabel('2020年1-3月日期')
plt.ylabel('日销售总额')
plt.grid(alpha=0.3, linestyle='--')
plt.tight_layout()
plt.show()

2. 分组箱线图(适合看单日交易分布)

如果需要同时观察单日每笔交易的金额分布、异常大额/小额订单情况,可以选择按日期分组的箱线图,搭配散点可以展示更细的交易颗粒度。
示例代码:

import seaborn as sns

fig, ax = plt.subplots(figsize=(14, 5), dpi=100)
sns.boxplot(
    x='new_date', 
    y='Sales', 
    data=df, 
    ax=ax, 
    color='#90cdf4',
    fliersize=2
)
plt.xticks(rotation=90, fontsize=7)
plt.xlabel('日期')
plt.ylabel('单笔交易销售额')
plt.tight_layout()
plt.show()

3. 周度聚合柱状图(适合跨周期对比)

3个月的日度数据波动较碎,如果需要做周期维度的业绩对比,可以按周重采样聚合后绘制柱状图,差异会更直观。
示例代码:

# 按自然周重采样聚合销售总额
df_weekly = df.resample('W', on='new_date')['Sales'].sum().reset_index()

fig, ax = plt.subplots(figsize=(10, 4), dpi=100)
sns.barplot(x='new_date', y='Sales', data=df_weekly, color='#f6ad55')
plt.xticks(rotation=30)
# 自定义X轴标签
ax.set_xticklabels([f"{x.month}月第{x.weekofyear}周" for x in df_weekly['new_date']])
plt.xlabel('统计周期')
plt.ylabel('周销售总额')
plt.tight_layout()
plt.show()
避坑提示
  • 不要对未聚合的多交易明细直接绘制时间序列折线:折线图默认连接相邻行的数据点,单日多笔记录会导致线条完全杂乱无章,无法传递有效信息
  • 绘图前必须确认日期字段为datetime64类型:否则X轴不会按时间先后排序,会出现日期错位、顺序混乱的问题
  • 3个月跨度的短周期数据不适合做复杂的季节性分解:可视化重点放在趋势展示、分布对比、周期差异即可,过度拆解反而会产生误导

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 19:29:00