我正在尝试使用布置数据绘制布置与方程式的结果。我收到此错误:
NameError:名称'N'未定义
lastmodified
答案 0 :(得分:2)
您使用的np.linspace
错误。第三个参数是步骤数。
import numpy as np
import matplotlib.pyplot as plt
T = np.linspace(0.01, 4.5, 450)
N = (2.63 * 10 ** -16) * ((2.71828 ** (6.93 * T)) - 1) + (
(4.05 * 10 ** -6) * T)
plt.plot(N, T)
plt.show()
此外,您不需要for
循环。
答案 1 :(得分:0)
正如@Stephen Rauch所提到的,linspace
的第三个参数是number of points。因此,如果num
小于1,则T
为空,并且未分配N
:
import numpy as np
T = np.linspace(0.01, 4.5, 0.01)
print(len(T)) # results 0
使用Numpy.arange
,您可以将开始,停止和步进定义为:
import numpy as np
import matplotlib.pyplot as plt
T = np.arange(0.01, 4.5, 0.01)
N = (2.63*10**-16)*((2.71828**(6.93*T))-1)+((4.05*10**-6)*T)
plt.plot (N,T)
plt.show()
答案 2 :(得分:0)
除了您需要正确使用linspace
的事实之外,如果您想知道如何使for循环起作用,一种方法是使用列表存储值,然后一次绘制所有列表。
import numpy as np
import matplotlib.pyplot as plt
T = np.linspace(0.01, 4.5, 450)
N = []
for i in T:
N.append((2.63*10**-16)*((2.71828**(6.93*i))-1)+((4.05*10**-6)*i))
plt.plot (N,T)
plt.show()