Come fare un grafico a dispersione in 3D in Python?
-
22-09-2019 - |
Domanda
Sono attualmente hanno una matrice NX3. Voglio tracciare le tre colonne come tre assi di. Come posso fare ciò?
Googled e la gente suggerito di usare Matlab , ma sto davvero avendo un momento difficile con la comprensione di esso. Ho anche bisogno che si tratti di un grafico a dispersione.
Qualcuno mi può insegnare?
Soluzione
È possibile utilizzare matplotlib per questo. matplotlib ha un mplot3d modulo che farà esattamente quello che vuoi.
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()
Il codice precedente genera una figura come:
Altri suggerimenti
Con il seguente codice ha funzionato per me:
# 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()
mentre X_iso è mio allineamento 3-D e per X_vals, Y_vals, Z_vals ho copiato / usato 1 colonna / asse da tale matrice e assegnato a quelle variabili / matrici rispettivamente.
Utilizzare asintoto invece!
Questo è ciò che può apparire come:
http://asymptote.sourceforge.net/gallery/3D%20graphs /helix.pdf
Questo è il codice: http://asymptote.sourceforge.net/gallery/3D%20graphs/helix. asy
Asymptote può anche leggere i file di dati.
E la galleria completa: http://asymptote.sourceforge.net/gallery/
Per usare asintoto dall'interno Python:
http://www.tex.ac .uk / tex-archive / grafica / asintoto / base / asymptote.py