如何使用python曲线拟合此特定数据图?

时间:2019-04-25 09:21:03

标签: python-3.x matplotlib

我必须使用fits文件中的数据制作一个cdm图。我已经成功做到了。现在的下一个任务是制作一条穿过人口最多的区域的线。那我该怎么办呢?

我不确定如何编程,因为我自己编程能力很弱

from astropy.io import fits
import matplotlib.pyplot as plt

leo = fits.open('Leo IV.fits')
data = leo[1].data

plt.scatter(data['M606']-data['M814'], data['M814'], color='k', s=1)
plt.title('Leo IV')
plt.gca().set_xlim([0.0,-0.8])
plt.gca().set_ylim([18,28])
plt.gca().invert_xaxis()
plt.gca().invert_yaxis()
plt.show()

这是我得到的: Graph I got

这就是我想要的:

enter image description here

如何使绿线出现在图形中?

2 个答案:

答案 0 :(得分:1)

好的。这是相同的代码段:

    import numpy as np
    import matplotlib.pyplot as plt

    x = np.arange(0.0,10.0,0.1)
    y = 2*x**3 + 2

    fit = np.polyfit(x, y, 1)
    fit_fn = np.poly1d(fit)

    plt.scatter(x, y)          # blue
    plt.scatter(x, fit_fn(x))  # orange
    plt.grid()
    plt.show() 

您应该将其作为输出: polyfit_plot

答案 1 :(得分:0)

您可以使用Matlabnumpy进行多项式曲线拟合。即使是简单的Google工作表,也会在图表中绘制trendline

对于numpy,检查函数polyfitpoly1d的曲线拟合。