How can i draw a quadratic function?

Viewed 59

I have a questions concerning numpy.

i listed my data from csv package and used sklearn to plot the data.

i compiled, then plotted graph was weird. i want to graph as "y = a * x**2 + b * x + c", gentle curve. How can i change my code to have quadratic function?


    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()
    
0 Answers
Related