#python #matplotlib
#python #matplotlib
Вопрос:
Я пытаюсь создать два отдельных графика в виде подзаголовков на одном и том же рисунке. Оба графика являются полярными. Мои попытки приводят к тому, что они отображаются на одном графике.
def GenerateTrigonometryTable(x): #Define Function
A = np.arange (0,360,x)
B = np.sin(A*np.pi/180)
C = np.cos(A*np.pi/180)
table = np.dstack(([A],[B],[C]))
return table
Theta = (GenerateTrigonometryTable(5)[:,:,0])
STheta = (GenerateTrigonometryTable(5)[:,:,1])
CTheta = (GenerateTrigonometryTable(5)[:,:,2])
ax1 = plt.subplot(111, projection='polar')
ax1.plot(Theta.flatten(), STheta.flatten())
ax2 = plt.subplot(111, projection='polar')
ax2.plot(Theta.flatten(), CTheta.flatten())
fig.show()
Это отображает его на одном графике, и мне нужно, чтобы это была фигура из двух отдельных графиков.
Комментарии:
1. это python matplotlib, а не matlab; следует настроить ваши теги.
2. Ваш python имеет плохой отступ —
IndentationError
как есть.3. почему вы используете одно и то же
111
для обоих подзаголовков?
Ответ №1:
Вам нужно следующее: 121
означает первый график на сетке 1×2 подзаголовков и 122
означает второй график на этой сетке 1×2 подзаголовков.
ax1 = plt.subplot(121, projection='polar')
ax1.plot(Theta.flatten(), STheta.flatten())
ax2 = plt.subplot(122, projection='polar')
ax2.plot(Theta.flatten(), CTheta.flatten())
fig.show()
Ответ №2:
Более объектно-ориентированный подход был бы :
fig = plt.figure()
ax1 = fig.add_subplot(121, projection='polar')
ax2 = fig.add_subplot(122, projection='polar')
ax1.plot(Theta.flatten(), STheta.flatten())
ax2.plot(Theta.flatten(), CTheta.flatten())
fig.show()
Эквивалент ответа Шелдора, но показывает, как фигуры, оси и графики сформулированы в matplotlib.