Matplotlib不绘制曲线

时间:2017-08-30 06:22:44

标签: python matplotlib anaconda

plt.show(),显示一个窗口,但它没有曲线。

我的代码:

In [1]: import math

In [2]: import numpy as np

In [3]: import matplotlib.pyplot as plt

In [4]: Lm=0

In [5]: for angle in np.arange(0.0,90.0,0.1):

   ...:     theta = angle*math.pi/180

   ...:     L=0.25*(math.cos(theta))*(5*math.sin(theta)+math.sqrt(25*math.sin(theta)*math.sin(theta)+80))

   ...:     print(L,"\t",angle)

   ...:     if L>Lm:

   ...:         Lm=L

   ...:


In [6]: plt.figure(1)

Out[6]: <matplotlib.figure.Figure at 0x284e5014208>

In [7]: for angle in np.arange(0.0,90.0,0.1):

   ...:     celta = angle*math.pi/180

   ...:     L=0.25*(math.cos(theta))*(5*math.sin(theta)+math.sqrt(25*math.sin(theta)*math.sin(theta)+80))

   ...:     plt.figure(1)

   ...:     plt.plot(angle,L)

   ...:

In [8]: plt.show()

输出

enter image description here

1 个答案:

答案 0 :(得分:1)

从我看到的情况来看,.*29XN的第二次计算与第一次计算完全相同(除了你总是使用相同的L值,我想这不是你的意思试图在第二个循环中实现)。您也根本不使用theta。我们只是想解决这个问题。完全没有使用celta,所以我也会把它踢掉,但是从我看到的你可以用Lm计算Lm

剩下的是以下代码:

np.max(L)

现在,您只有一次import numpy as np import matplotlib.pyplot as plt angles = np.arange(0.0, 90.0, 0.1) theta = angles * np.pi / 180 L = 0.25 * np.cos(theta) * (5*np.sin(theta) + np.sqrt(25*np.sin(theta)*np.sin(theta) + 80)) plt.plot(angles, L) plt.show() 来电,会创建一个包含大量积分的plt.plot个实例,您可以看到一个情节。