Python 3d Pyramid

Soy nuevo en el trazado 3d. Solo quiero construir una pirámide de 5 puntos y cortar un plano a través de ella. Mi problema es que no sé cómo llenar los lados.

points = np.array([[-1, -1, -1], [1, -1, -1 ], [1, 1, -1], [-1, 1, -1], [0, 0 , 1]]) fig = plt.figure() ax = fig.add_subplot(111, projection='3d') r = [-1,1] X, Y = np.meshgrid(r, r) ax.plot_surface(X,Y,-1, alpha=0.5) ax.plot_surface(X,Y,0.5, alpha=0.5, facecolors='r') ax.scatter3D(points[:, 0], points[:, 1], points[:, 2]) ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') plt.show() 

Cualquier ayuda es apreciada.

Tienes que usar polígonos:

 from matplotlib import pyplot as plt from mpl_toolkits.mplot3d.art3d import Poly3DCollection, Line3DCollection import numpy as np fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # vertices of a pyramid v = np.array([[-1, -1, -1], [1, -1, -1], [1, 1, -1], [-1, 1, -1], [0, 0, 1]]) ax.scatter3D(v[:, 0], v[:, 1], v[:, 2]) # generate list of sides' polygons of our pyramid verts = [ [v[0],v[1],v[4]], [v[0],v[3],v[4]], [v[2],v[1],v[4]], [v[2],v[3],v[4]], [v[0],v[1],v[2],v[3]]] # plot sides ax.add_collection3d(Poly3DCollection(verts, facecolors='cyan', linewidths=1, edgecolors='r', alpha=.25)) plt.show() 

introduzca la descripción de la imagen aquí