从散点图的点绘制曲线

时间:2018-08-28 22:13:32

标签: python pandas matplotlib graph scikit-learn

从sci-kit-learn计算出的回归函数绘制图形时,我面临一个愚蠢的问题。构建完函数后,我需要绘制一个图表,该图表显示原始数据中的X和Y以及我的函数中计算出的点。问题是尽管函数是线性的,但我的函数却不是直线,它使用傅里叶级数来为曲线提供正确的形状,并且当我尝试使用以下方法绘制直线时:

ax.plot(df['GDPercapita'], modelp1.predict(df1), color='k')

我有一个这样的图:

Plot

但是trhu图应该是在这些黑点之后的线:

Dots to be connected

我正在使用以下代码生成图形:

fig, ax = plt.subplots()
ax.scatter(df['GDPercapita'], df['LifeExpectancy'], edgecolors=(0, 0, 0))
ax.scatter(df['GDPercapita'], modelp1.predict(df1),color='k') #this line is changed to get the first pic.
ax.set_xlabel('Measured')
ax.set_ylabel('Predicted')
plt.show(block=True)

有人知道该怎么做吗?

讨论后编辑:

好,那么首先要做的是: 可以在以下位置下载数据:http://www.est.ufmg.br/~marcosop/est171-ML/dados/worldDevelopmentIndicators.csv

为了执行用于预测LifeExpectancy的回归函数的详尽的优化算法,我必须使用具有GDPercapita归一化值的傅立叶展开生成新数据,并找出生成最佳回归函数的op参数数量,这个数字是p = 22。 现在,我必须使用p = 22的回归函数的预测点来生成多项式函数,以显示如何将最佳回归函数与22度的多项式函数进行比较。 为了生成预测,我使用以下代码:

from sklearn import linear_model
modelp22 = linear_model.LinearRegression()
modelp22.fit(xp22,y_train)
df22 = df[p22]

fig, ax = plt.subplots()
ax.scatter(df['GDPercapita'], df['LifeExpectancy'], edgecolors=(0, 0, 0))
ax.scatter(df['GDPercapita'], modelp22.predict(df22),color='k') 
ax.set_xlabel('GDPercapita')
ax.set_ylabel('LifeExpectancy')
plt.show(block=True)  

现在,我需要使用预测点来创建多项式函数,并用以下方式绘制图形:原始数据(第一个散点),预测点(连续散点)和多边形函数(曲线或曲线)来显示它们视觉关系。

0 个答案:

没有答案