Actualmente estoy usando matplotlib para trazar una dispersión en 3D y mientras hace el trabajo, parece que no puedo encontrar una manera de rotarlo para ver mejor mis datos.¿Alguna manera fácil de trazar una dispersión en 3D en Python que pueda rotar?
He aquí un ejemplo:
import pylab as p
import mpl_toolkits.mplot3d.axes3d as p3
#data is an ndarray with the necessary data and colors is an ndarray with
#'b', 'g' and 'r' to paint each point according to its class
...
fig=p.figure()
ax = p3.Axes3D(fig)
ax.scatter(data[:,0], data[:,2], data[:,3], c=colors)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
fig.add_axes(ax)
p.show()
me gustaría una solución que me permite hacerlo durante el tiempo de ejecución, pero siempre que puedo girarlo y es corta/rápida, estoy bien con ella.
He aquí una comparación de los registros efectuados después de aplicar un PCA para el conjunto de datos del iris:
1. Mayavi
2. matplotlib
Mayavi hace que sea más fácil visualizar los datos, pero MatPlotLib se ve más profesional. Matplotlib también es más ligero.
ampliar este es mejor porque los puntos aumentan de tamaño a medida que acercas el zoom (matplotlib aumenta solo la distancia que hace que el zoom no sea tan útil) y matplotlib dibuja el cuadro del eje que no sigue el zoom. aunque este es mucho más pesado/más lento, así que probablemente sea mejor usarlo solo cuando tenga que acercarse. – pnodbnda
Esta línea ('import enthought.mayavi.mlab as mylab') no funcionó para mí. 'enthought' aparentemente no era un módulo. – Richard
@Richard: ¿Tiene 'mayavi' instalado? La instalación debe venir con instrucciones sobre cómo importar el módulo mayavi. – unutbu