Un moyen facile de tracer une dispersion 3D en Python que je peux tourner autour?
Actuellement, je suis en utilisant matplotlib pour tracer un 3d de nuages de points et tout, il fait le travail, je n'arrive pas à trouver un moyen de le faire pivoter pour voir mes données mieux.
Voici un exemple:
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()
J'aimerais une solution qui me permet de le faire pendant le temps d'exécution, mais tant que je peux la faire tourner et c'est court/rapide, je suis très bien avec lui.
Voici une comparaison des parcelles produites après l'application de l'APC à l'iris dataset:
1. mayavi
2. matplotlib
Mayavi rend plus facile pour visualiser les données, mais MatPlotLib l'air plus professionnel. Matplotlib est aussi plus léger.
source d'informationauteur pnodbnda
Vous devez vous connecter pour publier un commentaire.
À l'aide de mayavivous pouvez créer un tel complot avec
L'interface graphique permet de rotation par cliquer-glisser, et le zoom in/out via un clic-droit-glisser.
Bien, d'abord, vous devez définir ce que vous entendez par "voir mes données mieux"...
Vous pouvez faire pivoter et zoomer sur la parcelle à l'aide de la souris, si vous êtes désireux de travailler de manière interactive.
Si vous avez juste envie de faire pivoter les axes par programmation, utilisez ensuite
ax.view_init(elev, azim)
oùelev
etazim
sont l'élévation et l'azimut des angles (en degrés) que vous voulez afficher votre parcelle de terrain.Alternativement, vous pouvez utiliser le
ax.elev
ax.azim
etax.dist
propriétés pour obtenir/définir l'élévation, azimut et la distance du point de vue courant.D'emprunt de la source de cet exemple:
Un joli nuage de points:
Vous pouvez faire pivoter les axes par programmation comme indiqué:
Espère que ça aide un peu!