Как уместить и построить линейную линию регрессии в Python? - PullRequest
0 голосов
/ 10 мая 2018

У меня есть файл, содержащий x, y и y-err, и я просто хочу поместить прямую линию в эти данные.

Это мой исходный код, который я строю на графике. Исходя из этого, я хочу соответствовать прямой линии:

import numpy as np
import matplotlib.pyplot as plt

#read the data file
Data = np.loadtxt('dmvals.dat')    
MJD = Data[:,0]    
DM = Data[:,1]    
DM_err = Data[:,2]    
font = {'family': 'serif',
        'color':  'blue',
        'weight': 'normal',
        'size': 14,
        }

plt.figure()    
plt.xlabel('time[MJD]', fontdict=font)    
plt.ylabel('DM[pc/cm^3]', fontdict=font)    
plt.title('DM values', fontdict=font)    
plt.errorbar(MJD, DM, DM_err,color='magenta')    
plt.subplots_adjust(left=0.15 , hspace = 0.5)    
plt.savefig('dm_variations_plot.png')

1 Ответ

0 голосов
/ 10 мая 2018

Самый простой способ - использовать numpy.polyfit для подгонки полинома 1-й степени:

p = numpy.polyfit(MJD, DM, deg=1)

p будет списком, содержащим точку пересечения и наклон линии соответствия

Затем вы можете построить линию на ваших данных, используя

x = MJD
y = p[1] + p[0] * MJD
plt.plot(x, y, '--')
...