繁体   English   中英

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

[英]mplot3d (python) why plotting a line in 3d the coordinates need the metod flatten

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

输入操作数的维度多于轴重新映射所允许的维度?

谢谢

你的问题是z的形状。 你已经将它定义为(1,N) ,而它应该是(N,) 使用z = np.zeros(shape=t.shape)并且您不再需要展平您的数组

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM