我已经定义了一个我现在要绘制的函数:
import numpy as np
from math import pi, sqrt
import matplotlib.pyplot as plt
def f(x: float) -> float:
return pi * x * sqrt(x**2 + 400) + pi * x**2 - 1200
plt.plot(f(x))
plt.show()
运行此代码时,我收到“NameError:name'x'未定义”。
答案 0 :(得分:4)
将numpy与matplotlib结合使用通常很有用。然后,当您定义一个函数时,您可以编写它,使得它需要单个浮点数以及numpy数组作为输入。
import numpy as np
import matplotlib.pyplot as plt
def f(x):
return np.pi * x * np.sqrt(x**2 + 400) + np.pi * x**2 - 1200
x = np.array([1,2,3,4])
plt.plot(x, f(x))
plt.show()
当然,您现在也可以评估单个浮点数的函数
print( f(9.2) )
或将其用于列表或数组的每个元素
y = [f(i) for i in x]
plt.plot(x,y)
但是一旦你知道数学运算可以很容易地应用于numpy数组这一事实,你可能不想再选择后者了。