可视化我的 popt 输出会产生一条直线,我想可视化 popt 输出以确保其正确。我是初学者
Visualizing my popt outputs yield a straight line, I want to visualize the popt output to make sure its correct. I am beginner
我的 popt 变量输出一条垂直直线(请参阅 link 至 visualization)。我想找到最适合我的数据的正确指数线
我首先在 excel 中进行了指数运算,得到了 desired visualization,但给出了不准确的公式 712e^0.0001*x。
我想像 excel 中的 desired visualization 一样可视化 popt 值,以确保我的 popt 值在视觉上有意义。
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
import numpy as np
import pandas as pd
plot = plt.scatter(df.No_of_patients, df.No_of_booked_app)
plt.xlabel("No_of_patients")
plt.ylabel("No_of_booked_app")
plt.xlim(-500, 16000)
plt.ylim(-1000, 7000)
x1 = [1, 2, 3, 4, 5 ,6 ,7 ,8, 9, 10]
y1 = [2, 4, ,8 , 12, 20, 35, 40, 55, 70, 90]
df = pd.DataFrame(zip(x1, y1), columns = ['x1', 'y1'] )
def func(x, a, b, p0=None):
return a*np.exp(b*x)
x = df.x1
y = df.y1
popt, popcov = curve_fit(func, x, y, p0=[1,0], maxfev = 5000)
best_fit = plt.plot(func(x,*popt), 'y')
current_output
这是我想要的输出:
desired_output
您忘记将 x 变量传递给 plot 命令。因此,只需在传递 x
的地方使用以下内容并使用 o
作为市场符号
best_fit = plt.plot(x, func(x,*popt), 'yo')
我的 popt 变量输出一条垂直直线(请参阅 link 至 visualization)。我想找到最适合我的数据的正确指数线
我首先在 excel 中进行了指数运算,得到了 desired visualization,但给出了不准确的公式 712e^0.0001*x。
我想像 excel 中的 desired visualization 一样可视化 popt 值,以确保我的 popt 值在视觉上有意义。
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
import numpy as np
import pandas as pd
plot = plt.scatter(df.No_of_patients, df.No_of_booked_app)
plt.xlabel("No_of_patients")
plt.ylabel("No_of_booked_app")
plt.xlim(-500, 16000)
plt.ylim(-1000, 7000)
x1 = [1, 2, 3, 4, 5 ,6 ,7 ,8, 9, 10]
y1 = [2, 4, ,8 , 12, 20, 35, 40, 55, 70, 90]
df = pd.DataFrame(zip(x1, y1), columns = ['x1', 'y1'] )
def func(x, a, b, p0=None):
return a*np.exp(b*x)
x = df.x1
y = df.y1
popt, popcov = curve_fit(func, x, y, p0=[1,0], maxfev = 5000)
best_fit = plt.plot(func(x,*popt), 'y')
current_output
这是我想要的输出:
desired_output
您忘记将 x 变量传递给 plot 命令。因此,只需在传递 x
的地方使用以下内容并使用 o
作为市场符号
best_fit = plt.plot(x, func(x,*popt), 'yo')