我必须使用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()
这就是我想要的:
如何使绿线出现在图形中?
答案 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()
您应该将其作为输出:
答案 1 :(得分:0)
您可以使用Matlab
或numpy
进行多项式曲线拟合。即使是简单的Google工作表,也会在图表中绘制trendline
。
对于numpy
,检查函数polyfit
和poly1d
的曲线拟合。