Je suis 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 les gens ont suggéré d'utiliser Matlab, mais j'ai vraiment du mal à le comprendre. J'ai aussi besoin que ce soit un nuage de points.
Quelqu'un peut-il m'apprendre?
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:
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()
alors que X_iso est mon tableau à trois dimensions et pour X_vals, Y_vals, Z_vals, j'ai copié/utilisé 1 colonne/axe de ce tableau et affecté à ces variables/tableaux respectivement.
Utilisez asymptote à la place!
Voici à quoi cela peut ressembler:
http://asymptote.sourceforge.net/gallery/3D%20graphs/helix.pdf
C'est 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 asymptote depuis Python:
http://www.tex.ac.uk/tex-archive/graphics/asymptote/base/asymptote.py