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)