Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mplot3d(python)为什么在三维坐标系中绘制一条直线需要展平metod_Python_Matplotlib_Flatten_Mplot3d - Fatal编程技术网

mplot3d(python)为什么在三维坐标系中绘制一条直线需要展平metod

mplot3d(python)为什么在三维坐标系中绘制一条直线需要展平metod,python,matplotlib,flatten,mplot3d,Python,Matplotlib,Flatten,Mplot3d,我开始学习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

我开始学习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
(没有
展平
),我会得到如下错误:

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


谢谢

您的问题是
z
的形状。您已经将它定义为
(1,N)
,而它应该是
(N,)

使用
z=np.zero(shape=t.shape)
就不需要再展平数组了

是的。你,Diziet Asahi,是对的。谢谢你的澄清。