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')
数据集被导入并组织到不同的列中,我试图在创建的散点图上叠加一条最佳拟合线或线性回归,但我无法弄清楚如何。提前谢谢。
正如@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
提取单个回归量上的系数:
beta_1 = sm.OLS(data.y, data.x).fit().params
生成散点图并添加回归线:
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")