python - histograma - matplotlib
¿Cómo hacer un diagrama de dispersión 3D en Python? (4)
Actualmente tengo una matriz matricial 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 estoy teniendo dificultades para entenderlo. También necesito que sea una trama de dispersión.
¿Puede alguien enseñarme?
¡Usa la asíntota en su lugar!
Esto es lo que 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
La asíntota también puede leer en 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
Puedes 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:
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 se asignó a esas variables / matrices, respectivamente.