import numpy as np
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
plt.rcParams['axes.unicode_minus']=False #解决负数坐标显示问题
#x的个数决定了样本量
x = np.arange(-1,1,0.02)
#y为理想函数
y = 2*np.sin(x*2.3)+0.5*x**3
#y1为离散的拟合数据
y1 = y+0.5*(np.random.rand(len(x))-0.5)
z1 = np.polyfit(x, y, 6)
# 生成多项式对象
p1 = np.poly1d(z1)
pp1=p1(x)
##################################
plt.plot(x,y,color='g',linestyle='-',marker='',label=u'理想曲线')
plt.plot(x,y1,color='m',linestyle='',marker='o',label=u'拟合数据')
plt.plot(x,pp1,color='b',linestyle='-',marker='.',label=u"拟合曲线")
# 把拟合的曲线在这里画出来
plt.legend(loc='upper left')
plt.show()
import numpy as np
import matplotlib.pyplot as plt
from pylab import mpl
data = np.load('data/mygood299.npy') #final37
data = data.reshape(-1,3,60)
data = data[0:100,:,0:60]
for i in range(len(data)):
#data[i]为一个分叉
#第一个分支拟合曲线
x0 = data[i][0][0:30]
y0 = data[i][0][30:60]
z0 = np.polyfit(x0,y0,6)
f0 = np.poly1d(z0)
yy0 = f0(x0)
plt.scatter(x0,y0,color='red')
plt.plot(x0,yy0,color='blue')
#第二个分支拟合曲线
x1 = data[i][1][0:30]
y1 = data[i][1][30:60]
z1 = np.polyfit(x1,y1,10)
f1 = np.poly1d(z1)
yy1 = f1(x1)
plt.scatter(x1,y1,color='red')
plt.plot(x1,yy1,color='blue')
#第三个分支拟合曲线
x2 = data[i][2][0:30]
y2 = data[i][2][30:60]
z2 = np.polyfit(x2,y2,6)
f2 = np.poly1d(z2)
yy2 = f2(x2)
plt.scatter(x2,y2,color='red')
plt.plot(x2,yy2,color='blue')
plt.show()
######################################################################
# for i in range(len(data)):
# plt.scatter(data[i][0][0:30],data[i][0][30:60],color='red')
# plt.scatter(data[i][1][0:30],data[i][1][30:60],color='blue')
# plt.scatter(data[i][2][0:30],data[i][2][30:60],color='green')
# plt.show()
https://www.jb51.net/article/140135.htm