Gráficas 3D wireframe y dispersión

[3D wireframe] [3D scatter]
..

Gráficas 3D wireframe

Usada cuando se tienen muestras de puntos f(x,y) y se dan los valores en cada eje x y eje y.

Ejemplo:

isla = np.array([[0,1,0,0,0],
                 [1,3,1,1,0],
                 [5,4,3,2,0],
                 [0,0,1,1,0]])

xi = np.array([0,100,200,300,400])
yi = np.array([0, 50,100,150])

la grafica requiere importar las librerias en 3D

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d

crea las matrices de puntos de referencia:

X, Y = np.meshgrid(xi, yi)

crea la gráfica en una figura con proyección 3D

figura = plt.figure()
ax = figura.add_subplot(111, projection = '3d')
ax.plot_wireframe(X,Y,isla)
plt.show()

con lo que obtiene:


[3D wireframe] [3D scatter]
..


Gráficas 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.

[3D wireframe] [3D scatter]