Actualmente tengo una matriz de matriz nx3. Quiero trazar las tres columnas como tres ejes. ¿Cómo puedo hacer eso?
Busqué en Google y la gente sugirió usar Matlab , pero realmente me está costando entenderlo. También necesito que sea un diagrama de dispersión.
¿Alguien puede enseñarme?
python
3d
matplotlib
plot
scatter-plot
usuario211037
fuente
fuente
n
matriz de 3, obtendrá una gráfica de una curva en 3 dimensiones. Para una "gráfica en 3-d", necesitaría unan x m x l
matriz. ¿Quiere una curva, con una tupla que(x,y,z)
represente un punto en la curva?Respuestas:
Puede usar matplotlib para esto. matplotlib tiene un módulo mplot3d que hará exactamente lo que quieras.
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()
El código anterior genera una figura como:
fuente
plt.zlabel('zlabel')
no funcionará. Para etiquetar el eje z es necesario utilizar:ax.set_zlabel('Z')
.Use el siguiente código que funcionó para mí:
# 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()
mientras que X_iso es mi matriz 3-D y para X_vals, Y_vals, Z_vals copié / usé 1 columna / eje de esa matriz y la asigné a esas variables / matrices respectivamente.
fuente
¡Utilice asíntota en su lugar!
Así es como puede verse:
http://asymptote.sourceforge.net/gallery/3D%20graphs/helix.pdf
Este es el código: http://asymptote.sourceforge.net/gallery/3D%20graphs/helix.asy
Asymptote también puede leer archivos de datos.
Y la galería completa: http://asymptote.sourceforge.net/gallery/
Para usar asíntota desde dentro de Python:
http://www.tex.ac.uk/tex-archive/graphics/asymptote/base/asymptote.py
fuente