我想用matplotlib
绘制立方体的曲面。我正在尝试使用ax.plot_surface(X, Y, Z)
,但我有点困惑。X
、Y
和Z
应该用什么来表示2D数组?
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
points = np.array([[-1, -1, -1],
[1, -1, -1 ],
[1, 1, -1],
[-1, 1, -1],
[-1, -1, 1],
[1, -1, 1 ],
[1, 1, 1],
[-1, 1, 1]])
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# ax.plot_surface(X, Y, Z) # how?
ax.scatter3D(points[:, 0], points[:, 1], points[:, 2])
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()
3条答案
按热度按时间8ftvxx2r1#
修复新的matplotlib
uyto3xhc2#
立方体的每个面都是一个曲面,您可以自己定义每个角,也可以使用meshgrid:
X、Y和Z是(相同的)二维点列表:
ej83mcc03#
要在绘制长方体时使用对
plot_surface
的单个调用,可以在两个变量上参数化表面,e。例如使用球坐标。下面绘制一个边长为a,b,c的长方体:
参见Representing voxels with matplotlib