You need to enable JavaScript to run this app. 如何用Python matplotlib绘制实际值与预测值的对比图
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python matplotlib绘制实际值与预测值的对比图

回归实际值-预测值对比图的修正实现

现有代码存在的偏差

  • 参考线绘制逻辑错误:原代码使用plt.plot(range(my_range), range(my_range), 'o')绘制参考对象,输出为沿y=x分布的离散圆点,而非贯穿图面的连续理想拟合对角线
  • 坐标范围适配失效:range(my_range)仅能生成整数步长的坐标点,无法匹配带小数取值的样本数据,同时未预留合理绘图边距,导致数据点挤在图的角落
  • 图面可读性缺失:未配置坐标轴标签、图例、网格,无法直观区分样本点和参考线

可直接复用的修正代码

import matplotlib.pyplot as plt
import numpy as np

def plotGraph(y_test, y_pred, regressorName):
    # 自适应计算统一坐标范围,预留10%边距避免数据点贴边
    axis_min = min(y_test.min(), y_pred.min()) * 0.9
    axis_max = max(y_test.max(), y_pred.max()) * 1.1
    
    # 绘制实际值与预测值的样本散点
    plt.scatter(y_test, y_pred, color='#c0392b', label='样本点')
    # 绘制连续的y=x理想参考线
    plt.plot([axis_min, axis_max], [axis_min, axis_max], 
             color='#7f8c8d', linestyle='--', label='理想拟合线')
    
    # 配置图面展示要素
    plt.title(regressorName)
    plt.xlabel('实际值 Original')
    plt.ylabel('预测值 Predicted')
    plt.xlim(axis_min, axis_max)
    plt.ylim(axis_min, axis_max)
    plt.legend()
    plt.grid(alpha=0.3)
    plt.show()

最终效果说明

  • 红色散点为每一组实际值和对应预测值的坐标点,点越贴近灰色虚线参考线,代表模型预测和实际值的偏差越小
  • 坐标范围完全适配样本的取值区间,不会出现参考线错位、离散圆点堆砌的问题,和预期绘图效果一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.10 13:15:03