¿Cómo hacer un gráfico de dispersión 3D en Python?
-
22-09-2019 - |
Pregunta
Actualmente estoy tiene un arreglo matricial nx3. Quiero trazar las tres columnas que tres de los ejes. ¿Cómo puedo hacer eso?
He buscado en Google y la gente sugerido utilizar Matlab , pero estoy realmente teniendo dificultades con la comprensión de la misma. También necesito que sea un gráfico de dispersión.
enseñar a alguienCan mí?
Solución
Se puede usar matplotlib para esto. matplotlib tiene una mplot3d módulo que va a hacer exactamente lo que quiere.
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:
Otros consejos
Utilice el siguiente código que trabajó 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 X_iso es mi 3-D matriz y para X_vals, Y_vals, Z_vals copié / USED 1 columna / eje de esa matriz y asignados a esas variables / arrays respectivamente.
Uso asíntota lugar!
Esto es lo que puede verse como:
http://asymptote.sourceforge.net/gallery/3D%20graphs /helix.pdf
Este es el código: http://asymptote.sourceforge.net/gallery/3D%20graphs/helix. asy
asíntota también puede leer en los 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 / gráficos / asíntota / base / asymptote.py