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

Matplotlib合并COP轨迹绘图时部分数据未显示的问题

COP轨迹数据Matplotlib绘图不显示问题排查与解决

核心问题分析与对应解决方案

1. 大量集中点无法呈现:坐标轴自动缩放异常

如果数据中存在个别数值极大的异常点,Matplotlib自动调整坐标轴范围时,会把(-1.75, 1.62)附近的密集点压缩到几乎看不见。

  • 解决方法:手动锁定坐标轴范围,覆盖目标数据区间:
    plt.xlim(-2, 2)  # 根据实际数据调整,确保包含(-1.75)的x范围
    plt.ylim(1, 2)   # 同理调整y轴范围,覆盖1.62附近区域
    

2. 0-50区间无内容:数据切片或加载错误

大概率是切片时取错了数据范围,或数据加载后存在无效值:

  • 先验证数据有效性:打印0-50区间的前几行数据,确认是否有有效值:
    print(groundtruth_data[:50])
    print(predicted_data[:50])
    
  • 若输出为空/全NaN:检查数据读取逻辑,比如pd.read_csv是否指定了正确列、是否跳过了表头;若数据是numpy数组,确认切片维度是否正确(如data[:50, 0]取前50个x值)。
  • 若数据类型为字符串:转换为数值类型后再绘图:
    groundtruth_data = groundtruth_data.astype(float)
    

3. 绘图逻辑错误

如果用plt.plot()绘制零散点,可能因连线导致视觉上无法区分;或两组数据绘图顺序导致覆盖:

  • 改用plt.scatter()绘制散点,并设置不同样式区分两组数据:
    plt.scatter(groundtruth_x, groundtruth_y, c='blue', label='Groundtruth', s=5)
    plt.scatter(predicted_x, predicted_y, c='red', label='Predicted', s=5)
    plt.legend()
    

验证步骤

  1. 单独绘制(-1.75, 1.62)附近的点,确认数据本身无问题;
  2. 用groundtruth_data.max()/groundtruth_data.min()检查数据极值,排查是否存在异常大/小值;
  3. 绘制0-50区间前,打印该区间x、y的极值,确认数值在预期显示范围内。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 20:06:28