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

Python 2.7中为DataFrame散点图添加简单拟合回归线的最简方法

给Python 2.7散点图添加拟合回归线的最简实现方法

嘿,给你的散点图加拟合回归线其实超简单,用numpy自带的polyfit和polyval工具就行——不用额外装第三方库,毕竟Python 2.7环境里numpy基本是和matplotlib配套使用的。

直接给你修改后的完整代码,关键部分我会标注清楚:

import numpy as np
import matplotlib.pyplot as plt

# 你的原有绘图代码
df2 = myReport.loc[:, ['Quantity']]
print(df2)
plt.plot(df2, linestyle="", marker="." )
plt.axis([0,45,5023203,5938119])
plt.grid(True)
plt.legend(df2.columns)
plt.ylabel ('Population')
plt.xlabel ('Timeline')

# --- 新增的拟合回归线代码 ---
# 生成x轴数据:这里假设你的Timeline是从0开始的序列(对应df2的索引)
# 如果Timeline是单独的列,直接替换成 myReport['Timeline'] 即可
x = np.arange(len(df2))
# 计算一次线性拟合的系数(参数1代表线性拟合,想做高次拟合改这个数字就行)
fit_coeffs = np.polyfit(x, df2['Quantity'], 1)
# 生成拟合线的y值
y_fit = np.polyval(fit_coeffs, x)
# 绘制拟合线,用红色实线和散点区分,加个标签方便图例显示
plt.plot(x, y_fit, linestyle="-", color="red", label="Linear Fit")
# 更新图例,把拟合线的标签加进去
plt.legend()

plt.show()

几点小说明:

  • 如果你的Timeline不是索引,而是DataFrame里单独的一列,直接把x = np.arange(len(df2))改成x = myReport['Timeline']就行,适配你的实际数据结构。
  • np.polyfit的第三个参数是拟合的多项式次数,1对应线性回归,要是你需要二次/三次拟合,改成2/3就行,不过线性拟合是最常用的场景。
  • 拟合线的样式(颜色、线型)可以自己调整,比如把color="red"改成color="blue",linestyle="-"改成linestyle="--"(虚线),让图表更美观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:34:58