python 의합 곡선 그리 기 및 지정 표지 의 실현
import os
import numpy as np
from scipy import log
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
import math
from sklearn.metrics import r2_score
#
plt.rcParams['font.sans-serif']=['SimHei']
#
def func(x, a, b):
# y = a * log(x) + b
y = x/(a*x+b)
return 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]
# , method
result = curve_fit(func, x0, y0,method='trf')
a, b = result[0]
#
x1 = np.arange(2, 48, 0.1)
#y1 = a * log(x1) + b
y1 = x1/(a*x1+b)
x0 = np.array(x0)
y0 = np.array(y0)
# r2
y2 = x0/(a*x0+b)
#y2 = a * log(x0) + b
r2 = r2_score(y0, y2)
#plt.figure(figsize=(7.5, 5))
#
plt.tick_params(labelsize=11)
#
plt.scatter(x0,y0,s=30,marker='o')
#
plt.xlim((0, 50))
plt.ylim((0, round(max(y0))+2))
#
plt.plot(x1, y1, "blue")
plt.title(" ",fontsize=13)
plt.xlabel('X(h)',fontsize=12)
plt.ylabel('Y(%)',fontsize=12)
# ,y=9 x
p = round(9*b/(1-9*a),2)
#p = b/(math.log(9/a))
p = round(p, 2)
#
plt.scatter(p,9,s=20,marker='x')
# 、
plt.vlines(p, 0, 9, colors = "c", linestyles = "dashed")
plt.hlines(9, 0, p, colors = "c", linestyles = "dashed")
#
plt.text(p, 9, (float('%.2f'% p),9),ha='left', va='top', fontsize=11)
#
m = round(max(y0)/10,1)
print(m)
plt.text(48, m, 'y= x/('+str(round(a,2))+'*x+'+str(round(b,2))+')', ha='right',fontsize=12)
plt.text(48, m, r'$R^2=$'+str(round(r2,3)), ha='right', va='top',fontsize=12)
# True
# linestyle ( )
# color
# linewidth
plt.grid(True, linestyle = "--", color = "g", linewidth = "0.5")
plt.show()
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.