绘制未归一化结果图表出现异常:为何生成怪异图形?
怪异折线图的原因及解决办法
核心原因
- 时间序列未排序:你已经把
Timestamp列转换为datetime类型,但数据本身可能是乱序的。matplotlib会严格按照DataFrame的原有行顺序绘制折线,时间轴上的点不按先后排列,就会导致折线来回跳跃,出现图中的怪异形态。 - (次要可能)存在极端异常值:如果
Total Fwd Packet列有极大或极小的异常值,会拉伸y轴刻度,让折线看起来变形,但从你的图来看,时间乱序是主要问题。
解决步骤
- 先对数据按时间戳升序排序
# 按Timestamp列从小到大排序,确保时间序列连续 df = df.sort_values('Timestamp')
- 调整后的完整绘图代码
from datetime import datetime import pandas as pd import matplotlib.pyplot as plt df['Timestamp'] = pd.to_datetime(df['Timestamp'], format='%d/%m/%Y %I:%M:%S %p') # 新增排序操作,保证时间顺序正确 df = df.sort_values('Timestamp') df.info() plt.figure(figsize=(10,7)) plt.plot(df['Timestamp'], df['Total Fwd Packet']) # 可选:旋转x轴标签,避免文字重叠 plt.xticks(rotation=45) plt.tight_layout() plt.show()
额外建议
如果排序后图形还是有问题,可以检查Total Fwd Packet列的数值分布:
# 查看列的统计信息,排查异常值 print(df['Total Fwd Packet'].describe())
如果存在异常值,可以通过过滤(比如保留数值在合理区间内)再重新绘图。
内容的提问来源于stack exchange,提问作者Innana
相关产品推荐
相关产品推荐

