【发布时间】:2021-10-02 16:56:13
【问题描述】:
[from sklearn.mixture import GaussianMixture
from sklearn import preprocessing
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from scipy import stats
from astropy.io import ascii
from scipy.stats import norm
import math
from sklearn.metrics import r2_score
data2 = pd.read_csv("Dispersion total.csv")
names = data2.columns
df = pd.DataFrame(data2, columns=names)
df.head()
data3 = pd.read_csv("Dispersion less than equal to -1.5.csv")
names1 = data3.columns
df1 = pd.DataFrame(data3, columns=names1)
df1.head()
x= df1['Mean Mag'].values
y=df1['Log(sigma)'].values
#print(y)
w= df['Mean Mag'].values
z=df['Log(sigma)'].values
#ax=data2.plot(kind= 'scatter',x= 'Mean Mag',y = 'Log(sigma)',color='green')
#data3.plot(kind= 'scatter',x= 'Mean Mag',y = 'Log(sigma)',ax=ax)
fit = np.polyfit(x, y, 2)
a = fit[0]
b = fit[1]
c = fit[2]
fit_equation = a * np.square(x) + b * x + c
#Plotting
fig1 = plt.figure()
ax1 = fig1.subplots()
ax1.plot(x, fit_equation,color = 'r',alpha = 0.5, label = 'Polynomial fit')
ax1.scatter(w,z, s = 4, color = 'b', label = 'Data points')
ax1.set_title('Polynomial fit example')
ax1.legend()
plt.xlabel('Mean Magnitude')
plt.ylabel('Log(sigma)')
plt.show()
这是我目前拥有的情节:Current
我想要一个多项式拟合我的数据,它不会尝试拟合每个点,而是拟合最密集区域(-1.75 到 -1.5 之间)的一般曲线。像这样:
【问题讨论】:
标签: python scatter-plot data-fitting