Давайте сначала упростим вашу функцию:
def GenerateTrigonometryTable(x):
A = np.arange (0,360,x)
B = np.sin(A*np.pi/180)
C = np.cos(A*np.pi/180)
return np.dstack(([A],[B],[C]))
t = GenerateTrigonometryTable(5)
print(t.shape)
На выходе получается трехмерный массив формы (1,72,3)
. Для того, чтобы построить его, вам нужно сгладить ломтики.
Theta = (GenerateTrigonometryTable(5)[:,:,0])
STheta = (GenerateTrigonometryTable(5)[:,:,1])
ax1 = plt.subplot(111, projection='polar')
ax1.plot(Theta.flatten(), STheta.flatten())
plt.show()
Теперь, это может или не может быть тем, что вам нужно, поэтому позвольте мне предложить изменить функцию следующим образом
- используйте радианты вместо градусов
- складывает массивы как столбцы, чтобы вывести двумерный массив
- включает 2 пи в массиве
Код:
import numpy as np
import matplotlib.pyplot as plt
def GenerateTrigonometryTable(x):
A = np.deg2rad(np.arange(0,360+0.5,x))
B = np.sin(A)
C = np.cos(A)
return np.column_stack((A,B,C))
t = GenerateTrigonometryTable(5)
print(t.shape)
theta = (GenerateTrigonometryTable(5)[:,0])
stheta = (GenerateTrigonometryTable(5)[:,1])
ax1 = plt.subplot(111, projection='polar')
ax1.plot(theta, stheta)
plt.show()