Jupyter Notebook绘图刻度严重挤压,数据点显示异常该如何解决?
解决方案
- 第一步:校验索引是否异常
执行print(df21.index)检查数据集的索引范围是否为连续的0-99,若存在异常的超大/超小索引值,会将横轴拉伸导致100个数据点挤压在极小的显示区间,此时重置索引即可解决:df21 = df21.reset_index(drop=True) - 第二步:修正样式匹配参数
你当前设置的style=["-","o"]是给2个子图分别分配线型,若你的df21只有1列数据,会导致样式匹配异常。可以先关闭子图模式测试单图是否显示正常:import matplotlib.pyplot as plt df21.plot(figsize=(20,10), fontsize=12, style="-o", title = "Pump 2 - 100 Values") plt.tight_layout() # 自动调整布局避免标签被挤压 plt.show() - 第三步:显式指定坐标轴范围
若确实需要使用多子图模式,可以手动指定x轴范围适配100条数据,避免自动适配时引入异常值导致刻度压缩:axes = df21.plot(figsize=(20,10), fontsize=12,subplots=True, style=["-","o"], title = "Pump 2 - 100 Values") # 遍历所有子图统一设置x轴范围 for ax in axes: ax.set_xlim(0, 99) plt.tight_layout() plt.show() - 第四步:排查数据离群值
执行print(df21.describe())查看数据的最大最小值差值,若存在极端离群值会将纵轴拉伸,导致正常数值的波动看起来近似直线,过滤离群值后再绘图即可。
内容的提问来源于stack exchange,提问作者tabby
相关产品推荐
相关产品推荐

