mplot3d(python)为什么要在3d中绘制一条线,坐标需要平整

问题描述 投票:0回答:1

我开始学习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()

问题是:为什么如果我仅使用xyz(不使用flatten),则会出现类似以下错误:

输入操作数的维数大于轴重映射允许的维数?

谢谢

python matplotlib flatten mplot3d
1个回答
1
投票

您的问题是z的形状。您应该将其定义为(1,N),而应将其定义为(N,)。使用z = np.zeros(shape=t.shape),您将不再需要展平阵列

© www.soinside.com 2019 - 2024. All rights reserved.