Graficas 3D puntos dispersos-scatter

Varios puntos en el espacio para graficar, los puntos se ordenan por filas. Cada fila contiene las coordenadas [x, y, z] de cada punto:

puntos = np.array([[x0, y0, z0],
                   [x1, y1, z1],
                   [x2, y2, z3]])

Se usa un vector para cada coordenada xi, yi, zi.

xi = [x0, x1, x2]
yi = [y0, y1, y2]
zi = [z0, z1, z2]

con lo que se crea la gráfica de puntos (scatter) en 3d:

las instrucciones en python son:

# Puntos en el espacio, Dispersión-Scatter
# cada fila representa un punto [xi,yi,zi]
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# INGRESO
# unpunto = [x,y,z]
puntos = np.array([[0, 0, 0],
                   [1, 2, 3],
                   [2, 4,-1]])

# SALIDA
# grafica
figura = plt.figure()
grafica = figura.add_subplot(111,projection = '3d')

# xi = [:,0] ; yi = [:,1], zi = [:,2]
# selecciona columnas, use la transpuesta de puntos
[xi, yi , zi] = np.transpose(puntos)

grafica.scatter(xi,yi,zi,
                c = 'blue',
                marker='o',
                label = 'puntos[i]')
grafica.set_title('puntos, dispersión-scatter')
grafica.set_xlabel('eje x')
grafica.set_ylabel('eje y')
grafica.set_zlabel('eje z')
grafica.legend()
plt.show()

siguiendo el esquema, se pueden añadir los puntos que sean necesarios.