import pandas as pd import numpy as np import matplotlib.pyplot as plt from scipy.optimize import leastsq X=paiming.loc[:,'反链数'] Y=paiming.loc[:,'Alexa周排名'] def func(params,x): a,b,c=params return a*x*x+b*x+c def error_func(params,x,y): return func(params,x)-y P0=[1,9.0] def main(): plt.figure(figsize=(8,6)) P0=[1,9.0,1] Para=leastsq(error_func,P0,args=(X,Y)) a,b,c=Para[0] print("a=",a, "b=",b, "c=",c) plt.scatter(X,Y,color="green",label="样本数据",linewidth=2) x=np.linspace(1,2500,10) y=a*x*x+b*x+c plt.plot(x,y,color="red",label="拟合曲线",linewidth=2) plt.xlabel('反链数') plt.ylabel('Alexa周排名') plt.title("Alexa周排名与反链数回归方程") plt.grid() plt.legend() plt.show() main()怎么修改横坐标数值范围
时间: 2024-03-23 21:40:30 浏览: 15
要修改横坐标的数值范围,可以修改np.linspace函数中的起始值和终止值。例如,如果要将横坐标的数值范围改为1到3000,则可以将np.linspace(1,2500,10)修改为np.linspace(1,3000,10)。
另外,如果要将横坐标的刻度值修改为自定义的数值,可以使用plt.xticks函数,例如plt.xticks(np.arange(0, 3000, 500))可以将横坐标的刻度值设置为0、500、1000、1500、2000、2500、3000。修改后的代码如下:
```
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import leastsq
X = paiming.loc[:,'反链数']
Y = paiming.loc[:,'Alexa周排名']
def func(params, x):
a, b, c = params
return a*x*x + b*x + c
def error_func(params, x, y):
return func(params, x) - y
P0 = [1, 9.0]
def main():
plt.figure(figsize=(8, 6))
P0 = [1, 9.0, 1]
Para = leastsq(error_func, P0, args=(X, Y))
a, b, c = Para[0]
print("a=", a, "b=", b, "c=", c)
plt.scatter(X, Y, color="green", label="样本数据", linewidth=2)
x = np.linspace(1, 3000, 10)
y = a*x*x + b*x + c
plt.plot(x, y, color="red", label="拟合曲线", linewidth=2)
plt.xlabel('反链数')
plt.ylabel('Alexa周排名')
plt.title("Alexa周排名与反链数回归方程")
plt.xticks(np.arange(0, 3000, 500))
plt.grid()
plt.legend()
plt.show()
main()
```