Python 尝试计算线性回归并在matplotlib图表中显示时会出现奇怪的结果

Python 尝试计算线性回归并在matplotlib图表中显示时会出现奇怪的结果,python,matplotlib,regression,linear-regression,scatter-plot,Python,Matplotlib,Regression,Linear Regression,Scatter Plot,我试图为我的数据创建散点图,计算并在图表顶部显示线性回归和相关性 我的原始散点图如下所示: 但当我试图计算回归线并显示它时,我得到了一些非常奇怪的结果: 我是这样计算和显示它的: #I created one database from two different databases merged_data=pd.merge(byDH.to_frame(),NITbyDH,how='inner',on='plant') merged_data.head(18) #I have calcu

我试图为我的数据创建散点图,计算并在图表顶部显示线性回归和相关性

我的原始散点图如下所示:

但当我试图计算回归线并显示它时,我得到了一些非常奇怪的结果:

我是这样计算和显示它的:


#I created one database from two different databases
merged_data=pd.merge(byDH.to_frame(),NITbyDH,how='inner',on='plant')
merged_data.head(18)

#I have calculte the fit
fit = np.polyfit(merged_data.NDVI,merged_data.nitrogen,1)
print(fit)

#made X and Y axis into values in order to catcch only the relevant data
x=merged_data['NDVI'].values
y=merged_data['nitrogen'].values

# Create Figure (empty canvas)
fig = plt.figure()

# Add set of axes to figure
axes = fig.add_axes([1, 1, 1, 1]) # left, bottom, width, height (range 0 to 1)



# Regression lines.

plt.plot(merged_data.NDVI,fit[0]*merged_data.NDVI+fit[1], color='darkblue', linewidth=2)


# Regression equations.
plt.text(2,2,'y={:.2f}+{:.2f}*x'.format(fit[1],fit[0]),color='darkblue',size=12)


#plot

plt.scatter(y,x,alpha=0.5)
plt.title('NDVI vs Nitrogen 17/6/2019')
plt.xlabel('NDVI')
plt.ylabel('Nitrogen')
plt.show()

*如果你有更多的建议-除了图表之外,我可以做得更好的事情,请随意告诉我,我是一个初学者,我想学习更多

我已经使用ti slink创建了回归:

编辑:在修正x和y之后,我得到了一张很小的图表

您应该提供一个最小的、可复制的示例。否则,您已经切换了
x
y
轴。NDVI的值介于-1和1之间。在“散布”中,您可以切换它们(
plt.scatter(y,x,alpha=0.5)
),当您适合时,它们的顺序应该是相同的。这很有效,但现在大小减小了很多。我试着在fig中添加大小(fig=plt.figure(figsize=(10,10))但是仍然很小。为什么会发生呢?你是什么意思,大小非常小?你是说当回归线出现时?轴也在那里切换。
合并的数据。NDVI
是你的
y
,而不是你的
x
。我的意思是,现在按照你的建议修复并替换x和y之后,图表的大小变小了,所以我可以“我看不出它是这样的:
x=merged\u data['NDVI'].值y=merged\u data['non'].值
fit=np.polyfit(x,y,1)
plt.scatter(x,y,alpha=0.5)
plt.plt.plt(x,fit[0]*x+fit[1],color='darkblue',linewidth=2)