Saat ini saya memiliki array matriks nx3. Saya ingin memplot tiga kolom sebagai tiga sumbu. Bagaimana saya bisa melakukan itu?
Saya telah mencari di Google dan orang-orang menyarankan untuk menggunakan Matlab , tetapi saya benar-benar kesulitan memahaminya. Saya juga membutuhkannya sebagai plot pencar.
Bisakah seseorang mengajari saya?
python
3d
matplotlib
plot
scatter-plot
pengguna211037
sumber
sumber
n
larik dengan 3, Anda akan mendapatkan plot kurva dalam 3 dimensi. Untuk "plot 3-d", Anda membutuhkan sebuahn x m x l
array. Apakah Anda menginginkan kurva, dengan salah satu tupel(x,y,z)
mewakili satu titik pada kurva?Jawaban:
Anda dapat menggunakan matplotlib untuk ini. matplotlib memiliki modul mplot3d yang akan melakukan apa yang Anda inginkan.
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()
Kode di atas menghasilkan gambar seperti:
sumber
plt.zlabel('zlabel')
tidak akan berhasil. Untuk label z sumbu Anda perlu menggunakan:ax.set_zlabel('Z')
.Gunakan kode berikut ini berhasil untuk saya:
# 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()
sedangkan X_iso adalah array 3-D saya dan untuk X_vals, Y_vals, Z_vals I copy / use 1 column / axis from that array and assign to those variable / arrays masing-masing.
sumber
Gunakan asimtot sebagai gantinya!
Ini akan terlihat seperti:
http://asymptote.sourceforge.net/gallery/3D%20graphs/helix.pdf
Ini kodenya: http://asymptote.sourceforge.net/gallery/3D%20graphs/helix.asy
Asymptote juga bisa dibaca di file data.
Dan galeri lengkapnya: http://asymptote.sourceforge.net/gallery/
Untuk menggunakan asimtot dari dalam Python:
http://www.tex.ac.uk/tex-archive/graphics/asymptote/base/asymptote.py
sumber