mplot3d (python), почему при построении линии в трехмерных координатах метод должен сглаживаться - PullRequest
0 голосов
/ 04 марта 2020

Я начинаю изучать python и соответствующую графическую библиотеку. После некоторого опыта в 2D я начал использовать 3D. То, что я хотел бы сделать, это построение круга в 3D. Я привожу минимальный пример

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure(figsize=plt.figaspect(1))  # only solution to define axis aspect equal
ax = fig.add_subplot((111), projection='3d')

t = np.linspace(0, np.pi * 2, 360, endpoint=True)

x = np.cos(t)
y = np.sin(t)
z = zeros((1, len(x)))

ax.plot(x.flatten(), y.flatten(), z.flatten(), color='red')

plt.show()

Вопрос: почему, если я использую только x, y, z (без flatten), я получаю сообщение об ошибке типа:

входной операнд имеет больше измерений, чем разрешено переназначением оси?

Спасибо

1 Ответ

1 голос
/ 04 марта 2020

Ваша проблема в форме z. Вы определили его как (1,N), когда оно должно быть (N,). Используйте z = np.zeros(shape=t.shape), и вам больше не нужно будет выравнивать массив

...