for后无法绘制数据

时间:2019-07-06 22:36:18

标签: python numpy matplotlib

我正在尝试使用布置数据绘制布置与方程式的结果。我收到此错误:

  

NameError:名称'N'未定义

代码:

lastmodified

3 个答案:

答案 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循环。

enter image description here

答案 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()