【问题标题】:mplot3d (python) why plotting a line in 3d the coordinates need the metod flattenmplot3d(python)为什么在 3d 中绘制一条线坐标需要方法展平
【发布时间】:2020-03-04 10:38:21
【问题描述】:

我开始学习 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】:

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

    【讨论】:

    • 是的。你,Diziet Asahi,是对的。感谢您的澄清。
    猜你喜欢
    • 2021-07-25
    • 1970-01-01
    • 2019-11-29
    • 1970-01-01
    • 2022-11-10
    • 2021-11-26
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    相关资源
    最近更新 更多