python - 如何绘制二次函数?
问题描述
我有一个关于numpy
.
我列出了 csv 包中的数据并使用sklearn绘制数据。
我编译,然后绘制的图表很奇怪。我想绘制为“y = a * x**2 + b * x + c”,柔和的曲线。如何将我的代码更改为具有二次函数?
data_list = pd.read_csv(r\'과제3_data_list.csv')
type_list = list(["B2V","B3V","B5V","B8V","B9V","A0V","A2V","A3V","A7V","F0V","F3V","F7V","G0V","G8V","K0V","K2V","K3V","K4V","K5V","K6V"])
def N(x):
y = list()
for i in range(len(x)):
if np.isnan(x[i]) == False:
y.insert(i,x[i])
return y
Type = np.array(type_list).reshape(-1,1)
standard = np.array(N(np.array(data_list["NO"]))).reshape(-1,1)
standard_mb = np.array(N(np.array(data_list["mb"]))).reshape(-1,1)
standard_size = np.array(N(np.array(data_list["mean"]))).reshape(-1,1)
star_number = np.array(N(np.array(data_list["number"]))).reshape(-1,1)
star_mbmv = np.array(N(np.array(data_list["mb-mv"]))).reshape(-1,1)
star_mv = np.array(N(np.array(data_list["mv"]))).reshape(-1,1)
evas_mbmv = np.array(N(np.array(data_list["evas_mb-mv"]))).reshape(-1,1)
evas_Mv = np.array(N(np.array(data_list["evas_Mv"]))).reshape(-1,1)
Linear = LinearRegression()
standard_size_sorted = sorted(standard_size)
Poly = PolynomialFeatures(degree=2,include_bias=False)
x_poly = Poly.fit_transform(standard_size)
Linear.fit(x_poly,standard_mb)
y = Linear.predict(x_poly)
def Poly_func(x):
y = Linear.coef_[0][0] * x + Linear.coef_[0][1] * x **2 + Linear.intercept_
return y
plt.scatter(standard_size,standard_mb) # this is just x, y value
plt.plot(standard_size,Poly_func(standard_size)) # this plot have a trouble.
plt.show()
解决方案
推荐阅读
- javascript - 将一组名称相似的属性设置为 false
- excel - 是否可以创建一个不活动的新工作簿?
- javascript - 如何设置 JavaScript 对象的属性值?
- r - 拆分字符串并转换为R中的data.frame/tibble?
- python - Django html 表单数据抛出 NoReverseMatch
- angular - SnackBar 在 HTTPInterceptor 中使用时不显示
- html - 更少的编译器生成空规则
- asp.net-core-mvc - 查询字符串绑定在 RazorPage 上不起作用,即使 SupportsGet = true
- ruby-on-rails - Rails、EC2、Nginx、Unicorn - 新资产不再在生产环境中渲染
- javascript - NodeJS 并发 SFTP 下载导致不同的文件长度