在散点图上覆盖线性回归线(iPython笔记本)

2024-06-01 01:10:54 发布

您现在位置:Python中文网/ 问答频道 /正文

gh_data = ascii.read('http://dept.astro.lsa.umich.edu/~ericbell/data/GHOSTS/M81/ngc3031-    field15.newphoto_radec')
ra = gh_data['col5'][:]
dec = gh_data['col6'][:]
f606 = gh_data['col3'][:] 
f814 = gh_data['col4'][:]
plot(f6062-f8142,f8142, 'bo', alpha=0.15)  
axis([-1,2.5,27,23]) 
xlabel('F606W-F814W')
ylabel('F814W')
title('Field 14')

数据集被导入并组织到不同的列中,我试图在创建的散点图上覆盖一行最佳拟合或线性回归,但我不知道如何。提前谢谢。在


Tags: httpreaddataasciighastroedulsa
1条回答
网友
1楼 · 发布于 2024-06-01 01:10:54

正如@rayryeng指出的,您的代码只是绘制数据,但实际上并不计算任何回归结果来绘制。有一种方法:

import statsmodels.api as sm
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

data = pd.DataFrame({"y": range(1,11)+np.random.rand(10), 
                     "x": range(1,11)+np.random.rand(10)})

使用statsmodels-OLS方法拟合回归线,params提取单个回归变量上的系数:

^{pr2}$

生成散点图并添加回归线:

fig, ax = plt.subplots()
ax.scatter(data.x, data.y)
ax.plot(range(1,11), [i*beta_1 for i in range(1,11)], label = "best fit")
ax.legend(loc="best")

相关问题 更多 >