Python 使用更精确的x值数组在matplotlib中生成最佳拟合线?

Python 使用更精确的x值数组在matplotlib中生成最佳拟合线?,python,python-3.x,numpy,matplotlib,Python,Python 3.x,Numpy,Matplotlib,我目前被困在一个问题上,我需要生成一条最佳拟合曲线,我需要使用一个更精确的x阵列,从250到100,以10步为单位。这是我目前为止的代码 import numpy as np from numpy import polyfit, polyval import matplotlib.pyplot as plt x = [250,300,350,400,450,500,550,600,700,750,800,900,1000] x = np.array(x) y = [0.791, 0.846,

我目前被困在一个问题上,我需要生成一条最佳拟合曲线,我需要使用一个更精确的x阵列,从250到100,以10步为单位。这是我目前为止的代码

import numpy as np
from numpy import polyfit, polyval
import matplotlib.pyplot as plt

x = [250,300,350,400,450,500,550,600,700,750,800,900,1000]
x = np.array(x)
y = [0.791, 0.846, 0.895, 0.939, 0.978, 1.014, 1.046, 1.075, 1.102, 1.148, 1.169, 1.204, 1.234]
y= np.array(y)

r = polyfit(x,y,3)
fit = polyval(r, x)

plt.plot(x, fit, 'b')
plt.plot(x,y, color = 'r', marker = 'x')
plt.show()

如果我理解正确,您正在尝试通过c的步骤创建从a到b的数字数组

对于纯python,您可以使用:

list(range(a, b, c)) #in your case list(range(250, 1000, 10))
或者,由于您使用的是numpy,因此可以直接制作numpy阵列:

np.arange(a, b, c)

要按步骤创建数组,可以使用
numpy.arange([start,]stop[,step])


要生成250-1000之间的值,请使用范围(开始、停止、步骤):


由于x中的原始值为13,现在我们得到了75,我如何生成与新x数组最匹配的行。我不知道我是否理解正确:您没有更多的
y
数据点,因此不可能适应更多的
x
值?你真的只想用更多的
x
值来绘制你的新函数吗?这个问题对我来说也很困惑。。。它说:“绘制1阶(直线)、2阶或3阶的最佳曲线拟合以及测量标记(使用numpy函数polyfit和polyval)。要确定最佳拟合,请评估从1阶到3阶的三个多项式模型。(在代码中输入注释,说明哪一个产生最佳拟合。)使用更精细的x值列表(250到1000步,共10步)来计算多边形拟合“如果只提供
y
值,这确实是一个非常奇怪的问题。当然,你总是可以用更多的
x
值进行绘图,但这不会改变拟合的精度。是的,我在我的绘图计算器上试用过,拟合没有任何变化。。。。但是我现在知道怎么做了,哈哈
import numpy as np
x = np.arange(250,1000,10)
x = range(250,1001,10)
x = np.array(x)