Python 使用x值范围打印y函数时出错
当试图绘制一个关于x值范围的函数时,会出现此错误 TypeError:不支持*:“float”和“range”的操作数类型Python 使用x值范围打印y函数时出错,python,numpy,matplotlib,Python,Numpy,Matplotlib,当试图绘制一个关于x值范围的函数时,会出现此错误 TypeError:不支持*:“float”和“range”的操作数类型 import numpy as np import matplotlib.pyplot as plt x = range(273, 1273) print(list(x)) y = -0.7765 + (0.014350 * x) - (0.000012209 * (x ** 2)) + (3.8289e-09 * (x ** 3)) plt.plot(x, y, 'r')
import numpy as np
import matplotlib.pyplot as plt
x = range(273, 1273)
print(list(x))
y = -0.7765 + (0.014350 * x) - (0.000012209 * (x ** 2)) + (3.8289e-09 * (x ** 3))
plt.plot(x, y, 'r')
plt.show()
使用函数
range
时,它使用python的range
函数,该函数不能直接用于算术,因为它是迭代器。因此,您会得到一个错误,即不支持乘法:range
和float
当您使用NumPy的arange
时,它具有处理此类算法的内置能力。因此,您的代码应该使用它
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(273, 1273) # This
y = -0.7765 + (0.014350 * x) - (0.000012209 * (x ** 2)) + (3.8289e-09 * (x ** 3))
plt.plot(x, y, 'r')
plt.show()
使用
np.arange
代替range旁注:range
返回一个生成器,当您执行打印(列表(x))
时会使用该生成器。这意味着您以后不能在plt.plot(x,y,'r')
中再次使用它。