python绘制拟合曲线并加指定点标识
进口操作系统 进口numpy np 从scipy导入日志 从scipy。优化进口curve_fit 进口matplotlib。pyplot作为plt 导入数学 从sklearn。指标导入r2_score #字体 plt.rcParams [' font.sans-serif ']=[' SimHei '] #拟合函数 def func (x, a, b): # y=*日志(x) + b y=x/(a * x + b) 返回y #拟合的坐标点 x0=(2、4、8、10、24日,28日,32岁的48] y0=(6.66, 8.35, 10.81, 11.55, 13.63, 13.68, 13.69, 13.67) #拟合,可选择不同的方法 结果=curve_fit (func x0, y0,方法=胺雎只鸹帷? 结果a、b=[0] #绘制拟合曲线用 x1=np。现年48岁的论坛(2 - 0.1) #日元=*日志(x1) + b 日元=x1/(a * x1 + b) x0=np.array (x0) y0=np.array (y0) #计算r2 y2=x0/(a * x0 + b) # y2=*日志(x0) + b r2=r2_score (y0, y2) # plt.figure (figsize=(7.5, 5)) #坐标字体大小 plt.tick_params (labelsize=11) #原数据散点 plt.scatter (x0, y0, s=30,标志=皁”) #横纵坐标起止 plt。xlim ((0, 50)) plt。ylim((0,圆(max (y0)) + 2)) #拟合曲线 plt。情节(x1, y1,“蓝色”) plt.title(“标题”,字形大?13) plt.xlabel (X (h),字形大?12) plt.ylabel (“Y(%)”,字形大?12) #指定点,y=9时求x p=轮(9 * b/(1 - 9 * 1), 2) # p=b/(math.log (9/a)) p=圆(p, 2) #显示坐标点 plt.scatter (p 9 s=20,标志=皒”) #显示坐标点横线,竖线 plt。vlines (p 0 9、颜色=癱”,线型=俺濉? plt。线(9,0,p,颜色=癱”,线型=俺濉? #显示坐标点坐标值 plt。文本(p 9(浮动(' %。2 f ' % p), 9),哈='左',va='前',字形大?11) #显示公式 m=圆(max (y0)/10 1) 打印(m) plt。文本(48,m, y=x/(' + str(圆(a, 2)) + ' * x + ' + str(圆(b, 2)) + ') ',公顷=罢贰钡淖中未笮=12) plt。文本(48 m r ' $ r ^ 2=$ + str(圆(r2, 3)),公顷=返摹?va=岸ゼ丁?字形大?12) #真正的显示网格 #线型设置线显示的类型(一共四种) #颜色设置网格的颜色 #线宽设置网格的宽度 plt。网格(真的,线型=薄把丈?癵”,线宽=?.5”) plt.show ()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。