J'ai actuellement un tableau matriciel nx3. Je veux tracer les trois colonnes comme trois axes. Comment puis je faire ça?
J'ai cherché sur Google et des gens ont suggéré d'utiliser Matlab , mais j'ai vraiment du mal à le comprendre. J'ai également besoin que ce soit un nuage de points.
Quelqu'un peut-il m'apprendre?
python
3d
matplotlib
plot
scatter-plot
utilisateur211037
la source
la source
n
tableau par 3, vous obtiendrez un tracé d'une courbe en 3 dimensions. Pour un "tracé 3D", vous auriez besoin d'unn x m x l
tableau. Voulez-vous une courbe, avec un tuple(x,y,z)
représentant un point sur la courbe?Réponses:
Vous pouvez utiliser matplotlib pour cela. matplotlib a un module mplot3d qui fera exactement ce que vous voulez.
from matplotlib import pyplot from mpl_toolkits.mplot3d import Axes3D import random fig = pyplot.figure() ax = Axes3D(fig) sequence_containing_x_vals = list(range(0, 100)) sequence_containing_y_vals = list(range(0, 100)) sequence_containing_z_vals = list(range(0, 100)) random.shuffle(sequence_containing_x_vals) random.shuffle(sequence_containing_y_vals) random.shuffle(sequence_containing_z_vals) ax.scatter(sequence_containing_x_vals, sequence_containing_y_vals, sequence_containing_z_vals) pyplot.show()
Le code ci-dessus génère un chiffre comme:
la source
plt.zlabel('zlabel')
ne fonctionnera pas. Pour marquer l'axe z vous devez utiliser:ax.set_zlabel('Z')
.Utilisez le code suivant, cela a fonctionné pour moi:
# Create the figure fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # Generate the values x_vals = X_iso[:, 0:1] y_vals = X_iso[:, 1:2] z_vals = X_iso[:, 2:3] # Plot the values ax.scatter(x_vals, y_vals, z_vals, c = 'b', marker='o') ax.set_xlabel('X-axis') ax.set_ylabel('Y-axis') ax.set_zlabel('Z-axis') plt.show()
tandis que X_iso est mon tableau 3-D et pour X_vals, Y_vals, Z_vals j'ai copié / utilisé 1 colonne / axe de ce tableau et assigné à ces variables / tableaux respectivement.
la source
Utilisez plutôt l'asymptote!
Voici à quoi cela peut ressembler:
http://asymptote.sourceforge.net/gallery/3D%20graphs/helix.pdf
Voici le code: http://asymptote.sourceforge.net/gallery/3D%20graphs/helix.asy
Asymptote peut également lire des fichiers de données.
Et la galerie complète: http://asymptote.sourceforge.net/gallery/
Pour utiliser l'asymptote depuis Python:
http://www.tex.ac.uk/tex-archive/graphics/asymptote/base/asymptote.py
la source