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

Spyder环境下Python线性回归拟合曲线无法显示求助

求助:Spyder中Matplotlib线性回归曲线无法显示问题

原本打算给同事展示Python对比Excel的优势,结果在Spyder环境里用Matplotlib绘制线性回归拟合曲线时,曲线始终无法显示。尝试了plt.plot、plt.axline等多种实现方式,相关代码如下,希望能帮忙排查原因:

plt.figure('example')
slope, intercept, r, p, std_err = stats.linregress(values1, values3)

def myfunc(x):
  return slope * x + intercept

mymodel = list(map(myfunc, values1))

plt.scatter(values1, values3)
#plt.plot(values1, mymodel)
#plt.axline([xy1=(0, intercept), slope=slope, label=f'$y = {slope:.1f}x {intercept:+.1f}$'])
#plt.plot(values1, mymodel, 'r', label='y={:.2f}x+{:.2f}'.format(slope,intercept))
plt.plot(values1, mymodel, 'r', label='y={:.2f}x+{:.2f}'.format(slope,intercept))

#plt.axline(xy1, kwargs)

plt.axline
plt.xlabel('time [hh:mm]')
plt.ylabel(desired_value1)
#plt.axline(xy1=(0, intercept), slope=slope, label=f'$y = {slope:.1f}x {intercept:+.1f}$')
plt.show()

排查方向建议

  • 检查x轴数据是否有序:plt.plot绘制折线时,若x轴数据(values1)是乱序的,线条会来回交叉,看起来像未显示或杂乱无章。可以先对x和对应y数据排序后再拟合绘图:
    # 按x轴数据排序
    sorted_pairs = sorted(zip(values1, values3))
    sorted_x, sorted_y = zip(*sorted_pairs)
    # 重新计算回归参数
    slope, intercept, r, p, std_err = stats.linregress(sorted_x, sorted_y)
    mymodel = [slope * x + intercept for x in sorted_x]
    # 绘图
    plt.scatter(sorted_x, sorted_y)
    plt.plot(sorted_x, mymodel, 'r', label='y={:.2f}x+{:.2f}'.format(slope,intercept))
    
  • 调整Spyder的Matplotlib后端设置:打开Spyder的「工具>偏好设置>IPython控制台>图形」,将后端改为"Automatic"或"Qt5Agg",重启Spyder后再运行代码。后端配置错误是Spyder中图像不显示的常见原因。
  • 删除无效代码:代码中单独的plt.axline是无效调用,既没有传参也没有执行,直接删掉这一行。
  • 检查数据完整性:确认values1和values3中没有NaN、无穷大等异常值,这些会导致拟合或绘图失败。可以用print(np.isnan(values1).any())和print(np.isnan(values3).any())检查是否存在缺失值。
  • 确认程序执行到plt.show():在plt.show()前添加print("准备显示图像"),运行代码后看控制台是否输出这句话,排查是否在绘图前程序就已中断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 08:43:26