Ok, así que creo que debería haber una manera fácil de crear un trazado de dispersión tridimensional utilizando matplotlib. Tengo una matriz 3D numpy (dset
) con 0 de donde yo no quiero un punto y de 1, donde yo, básicamente para trazar ahora tengo que pasar por tres for:
bucles como por ejemplo:Crear un trazado 3D a partir de un conjunto numpy 3D
for i in range(30):
for x in range(60):
for y in range(60):
if dset[i, x, y] == 1:
ax.scatter(x, y, -i, zdir='z', c= 'red')
Cualquier sugerencia sobre cómo podría lograr esto de manera más eficiente? Cualquier idea sería muy apreciada.
Hermosa. Tengo una pregunta sobre la parte '(d> 3.4) .nonzero()', ¿eso devolvería solo los lugares donde d tiene un valor mayor a 3.4? – pter
@pter: exactamente correcto. '(d> 3.4)' da a una matriz booleana la misma forma que 'd' con' True' donde la entrada es> 3.4 y 'False' en otro lugar. – DSM
dulce No sabía de esto (generalmente no necesito tramas en 3D ... pero si lo hago será increíble!) Gracias DSM –