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

如何避免10万行时间序列数据绘图时出现重叠问题?

解决Matplotlib绘制大体积时间序列数据的异常问题

问题根源

10万行数据里存在同一时间点对应多个energy值,Matplotlib的plot函数会按数据顺序连接所有点,同一x坐标(时间点)上的多个y值会被来回连线,导致图形混乱;而1000行数据要么没有重复时间点,要么重复量少到视觉上不明显,所以显示正常。

具体解决办法

  • 方法1:聚合同一时间点的数值(最常用)
    如果同一时间点的多个energy值是重复采集或需要合并的,先按时间分组做聚合处理(均值、求和、最值都可以,根据业务需求选):
# 按day分组计算energy均值,也可替换成sum/max/min
agg_df = x_df.groupby('day')['energy'].mean().reset_index()

plt.figure(figsize=(50,25))
plt.xticks(fontsize=30)
plt.plot(agg_df['day'], agg_df['energy'])
  • 方法2:用散点图展示原始数据
    如果需要保留所有原始数据点,不想做聚合,换成散点图避免连线混乱,还能调整点大小减少重叠:
plt.figure(figsize=(50,25))
plt.xticks(fontsize=30)
plt.scatter(x_df['day'], x_df['energy'], s=10)
  • 方法3:清理重复时间点数据
    如果同一时间点的多个值是数据错误导致的,直接去重(保留每个时间点的第一条数据,规则可自定义):
# 保留每个day对应的第一条数据,keep='last'则保留最后一条
clean_df = x_df.drop_duplicates(subset='day', keep='first')

plt.figure(figsize=(50,25))
plt.xticks(fontsize=30)
plt.plot(clean_df['day'], clean_df['energy'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 16:52:07