Sistem koordinat 3d petak python
Ada banyak masalah dalam rekayasa yang memerlukan pemeriksaan domain 2-D. Misalnya, jika Anda ingin menentukan jarak dari titik tertentu pada permukaan datar ke permukaan datar lainnya, Anda perlu memikirkan koordinat x dan y. Ada berbagai fungsi lain yang membutuhkan koordinat x dan y Show
Untuk lebih memahami cara kerja pembuatan plot di Python, mulailah dengan membaca halaman berikut dari halaman Tutorial Juga, ada beberapa tutorial bagus di luar sana. Sebagai contoh CatatanPada matplotlib 3. 2. 0, submodule axes3d tidak perlu lagi diimpor dari mpl_toolkits. mplot3d. Untuk melakukan pemeriksaan cepat pada baris perintah, cobalah import matplotlib matplotlib.__version__ Jika versi lebih awal dari 3. 2. 0, Anda perlu menambahkan from mpl_toolkits.mplot3d import axes3d_ untuk pembukaan dari contoh di bawah ini Tambalan IndividuSalah satu cara untuk membuat permukaan adalah dengan membuat daftar koordinat x, y, dan z untuk setiap lokasi tambalan. Python dapat membuat permukaan dari titik-titik yang ditentukan oleh matriks dan kemudian akan menghubungkan titik-titik tersebut dengan menghubungkan nilai-nilai di samping satu sama lain dalam matriks. Misalnya, jika x, y, dan z adalah matriks 2x2, permukaan akan menghasilkan kelompok empat garis yang menghubungkan empat titik dan mengisi ruang di antara keempat garis tersebut. import numpy as np import matplotlib.pyplot as plt fig = plt.figure(num=1, clear=True) ax = fig.add_subplot(1, 1, 1, projection='3d') x = np.array([[1, 3], [2, 4]]) y = np.array([[5, 6], [7, 8]]) z = np.array([[9, 12], [10, 11]]) ax.plot_surface(x, y, z) ax.set(xlabel='x', ylabel='y', zlabel='z') fig.tight_layout() fig.savefig('PatchExOrig_py.png') Versi TrinketPerhatikan bahwa keempat "sudut" di atas tidak semuanya ko-planar; ax.view_init(elev=30, azim=45) plt.draw() yang menghasilkan gambar berikut Anda dapat menambahkan lebih banyak tambalan ke permukaan dengan memperbesar ukuran matriks. Misalnya, menambahkan kolom lain akan menambah dua persimpangan lagi ke permukaan fig = plt.figure(num=1, clear=True) ax = fig.add_subplot(1, 1, 1, projection='3d') x = np.array([[1, 3, 5], [2, 4, 6]]) y = np.array([[5, 6, 5], [7, 8, 9]]) z = np.array([[9, 12, 12], [10, 11, 12]]) ax.plot_surface(x, y, z) ax.set(xlabel='x', ylabel='y', zlabel='z') ax.view_init(elev=30, azim=220) fig.tight_layout()_ Perhatikan rotasi untuk lebih melihat dua tambalan yang berbeda Perintah meshgridSebagian besar waktu, daripada menentukan tambalan individual, Anda akan memiliki fungsi dua parameter untuk diplot. Perintah meshgrid Numpy secara khusus digunakan untuk membuat matriks yang akan mewakili dua parameter. Sebagai contoh, perhatikan output dari perintah Python berikut In [1]: (x, y) = np.meshgrid(np.arange(-2, 2.1, 1), np.arange(-1, 1.1, .25)) In [2]: x Out[2]: array([[-2., -1., 0., 1., 2.], [-2., -1., 0., 1., 2.], [-2., -1., 0., 1., 2.], [-2., -1., 0., 1., 2.], [-2., -1., 0., 1., 2.], [-2., -1., 0., 1., 2.], [-2., -1., 0., 1., 2.], [-2., -1., 0., 1., 2.], [-2., -1., 0., 1., 2.]]) In [3]: y Out[3]: array([[-1. , -1. , -1. , -1. , -1. ], [-0.75, -0.75, -0.75, -0.75, -0.75], [-0.5 , -0.5 , -0.5 , -0.5 , -0.5 ], [-0.25, -0.25, -0.25, -0.25, -0.25], [ 0. , 0. , 0. , 0. , 0. ], [ 0.25, 0.25, 0.25, 0.25, 0.25], [ 0.5 , 0.5 , 0.5 , 0.5 , 0.5 ], [ 0.75, 0.75, 0.75, 0.75, 0.75], [ 1. , 1. , 1. , 1. , 1. ]]) Argumen pertama memberikan nilai yang harus disertakan oleh variabel keluaran pertama, dan argumen kedua memberikan nilai yang harus disertakan oleh variabel keluaran kedua. Perhatikan bahwa variabel keluaran pertama from mpl_toolkits.mplot3d import axes3d5 pada dasarnya memberikan koordinat from mpl_toolkits.mplot3d import axes3d5 dan variabel keluaran kedua from mpl_toolkits.mplot3d import axes3d7 memberikan koordinat from mpl_toolkits.mplot3d import axes3d7. Ini berguna jika Anda ingin memplot fungsi dalam 2-D. Perhatikan bahwa nilai penghentian untuk perintah arange baru saja melewati tempat yang ingin kita akhiri Contoh Menggunakan 2 Variabel IndependenMisalnya, untuk memplot from mpl_toolkits.mplot3d import axes3d_9 pada rentang from mpl_toolkits.mplot3d import axes3d5 dan from mpl_toolkits.mplot3d import axes3d7 yang ditentukan di atas - kodenya adalah fig = plt.figure(num=1, clear=True) ax = fig.add_subplot(1, 1, 1, projection='3d') (x, y) = np.meshgrid(np.arange(-2, 2.1, 1), np.arange(-1, 1.1, .25)) z = x + y ax.plot_surface(x, y, z) ax.set(xlabel='x', ylabel='y', zlabel='z', title='z = x + y') fig.tight_layout() dan grafiknya adalah Jika Anda ingin membuatnya lebih berwarna, Anda dapat mengimpor peta warna lalu menggunakannya; import numpy as np import matplotlib.pyplot as plt from matplotlib import cm fig = plt.figure(num=1, clear=True) ax = fig.add_subplot(1, 1, 1, projection='3d') (x, y) = np.meshgrid(np.arange(-2, 2.1, 1), np.arange(-1, 1.1, .25)) z = x + y ax.plot_surface(x, y, z, cmap=cm.copper) ax.set(xlabel='x', ylabel='y', zlabel='z', title='z = x + y') fig.tight_layout() Untuk melihat semua peta warna, setelah mengimpor grup cm ketik saja help(cm) untuk melihat nama atau pergi ke Colormap Reference untuk melihat warna
import numpy as np import matplotlib.pyplot as plt fig = plt.figure(num=1, clear=True) ax = fig.add_subplot(1, 1, 1, projection='3d') x = np.array([[1, 3], [2, 4]]) y = np.array([[5, 6], [7, 8]]) z = np.array([[9, 12], [10, 11]]) ax.plot_surface(x, y, z) ax.set(xlabel='x', ylabel='y', zlabel='z') fig.tight_layout() fig.savefig('PatchExOrig_py.png')2, Anda hanya perlu mengubah fungsinya. Karena jarak antara dua titik \((x, y)\) dan \((x_0, y_0)\) diberikan oleh \( r=\sqrt{(x-x_0)^2+(y-y_0)^2 fig = plt.figure(num=1, clear=True) ax = fig.add_subplot(1, 1, 1, projection='3d') (x, y) = np.meshgrid(np.arange(-2, 2.1, 1), np.arange(-1, 1.1, .25)) z = np.sqrt((x-(1))**2 + (y-(-0.5))**2) ax.plot_surface(x, y, z, cmap=cm.Purples) ax.set(xlabel='x', ylabel='y', zlabel='z', title='Distance from (1, -0.5)') fig.tight_layout() dan plotnya adalah Contoh Menggunakan Refined GridsAnda juga dapat menggunakan kisi yang lebih halus untuk membuat plot yang terlihat lebih baik from mpl_toolkits.mplot3d import axes3d_0 dan plotnya adalah Menggunakan Sistem Koordinat LainPerintah plotting seperti import numpy as np import matplotlib.pyplot as plt fig = plt.figure(num=1, clear=True) ax = fig.add_subplot(1, 1, 1, projection='3d') x = np.array([[1, 3], [2, 4]]) y = np.array([[5, 6], [7, 8]]) z = np.array([[9, 12], [10, 11]]) ax.plot_surface(x, y, z) ax.set(xlabel='x', ylabel='y', zlabel='z') fig.tight_layout() fig.savefig('PatchExOrig_py.png')3 dan import numpy as np import matplotlib.pyplot as plt fig = plt.figure(num=1, clear=True) ax = fig.add_subplot(1, 1, 1, projection='3d') x = np.array([[1, 3], [2, 4]]) y = np.array([[5, 6], [7, 8]]) z = np.array([[9, 12], [10, 11]]) ax.plot_surface(x, y, z) ax.set(xlabel='x', ylabel='y', zlabel='z') fig.tight_layout() fig.savefig('PatchExOrig_py.png')4 menghasilkan permukaan berdasarkan matriks koordinat x, y, dan z, masing-masing, tetapi Anda juga dapat menggunakan sistem koordinat lain untuk menghitung ke mana titik pergi. Sebagai contoh, fungsi\( z = e^{-\sqrt{x^2+y^2}}~\cos(4x)~\cos(4y) \) dapat diplot pada grid bujursangkar menggunakan from mpl_toolkits.mplot3d import axes3d_1 memberi Itu juga bisa diplot pada domain melingkar menggunakan koordinat kutub. Untuk melakukannya, koordinat r dan \(\theta\) dapat dihasilkan menggunakan meshgrid dan nilai x, y, dan z yang sesuai dapat diperoleh dengan mencatat bahwa \(x=r\cos(\theta)\) dan \( . z kemudian dapat dihitung dari kombinasi x, y, r, dan \(\theta\) from mpl_toolkits.mplot3d import axes3d_2 menghasilkan Bilah WarnaAnda mungkin ingin menambahkan bilah warna untuk menunjukkan nilai yang diberikan pada warna tertentu. Ini dapat dilakukan dengan menggunakan perintah import numpy as np import matplotlib.pyplot as plt fig = plt.figure(num=1, clear=True) ax = fig.add_subplot(1, 1, 1, projection='3d') x = np.array([[1, 3], [2, 4]]) y = np.array([[5, 6], [7, 8]]) z = np.array([[9, 12], [10, 11]]) ax.plot_surface(x, y, z) ax.set(xlabel='x', ylabel='y', zlabel='z') fig.tight_layout() fig.savefig('PatchExOrig_py.png')_5 tetapi untuk menggunakannya Anda harus memiliki akses ke variabel yang merujuk ke plot permukaan Anda - perhatikan bagaimana chipplot variabel digunakan di bawah from mpl_toolkits.mplot3d import axes3d_3 menghasilkan Tidak ada percobaanfrom mpl_toolkits.mplot3d import axes3d_4 PertanyaanPosting pertanyaan Anda dengan mengedit halaman diskusi artikel ini. Edit halaman, lalu gulir ke bawah dan tambahkan pertanyaan dengan memasukkan karakter *{{Q}}, diikuti dengan pertanyaan Anda dan terakhir tanda tangan Anda (dengan empat tanda gelombang, i. e. ~~~~). Menggunakan {{Q}} akan secara otomatis menempatkan halaman dalam kategori halaman dengan pertanyaan - editor lain yang berharap dapat membantu kemudian dapat membuka halaman kategori tersebut untuk melihat di mana pertanyaannya. Lihat halaman untuk Template. Q untuk detail dan contoh Bagaimana Anda memplot koordinat 3D dengan Python?Perencanaan 3D . impor numpy sebagai np dari mpl_toolkits impor mplot3d impor matplotlib. pyplot sebagai plt plt gbr = plt. angka(figsize = (10,10)) kapak = plt. sumbu (proyeksi = '3d') plt x = [1, 2, 3, 4] y = [3, 4, 5] X, Y = np. meshgrid(x,y) cetak(X) [[1 2 3 4] [1 2 3 4] [1 2 3 4]] Bagaimana Anda memplot objek 3D dengan Python?Bagaimana Anda memplot titik 3D dengan Python? . Langkah 1. Impor perpustakaan. impor matplotlib. pyplot sebagai plt dari mpl_toolkits. mplot3d mengimpor Axes3D Langkah 2. Buat gambar dan sumbu. gbr = plt. angka(figsize=(4,4)) kapak = gbr. add_subplot(111, proyeksi='3d') Langkah 3. Plot intinya Bagaimana cara memplot array 3D di matplotlib?Membuat plot 3D di Matplotlib dari array numpy 3D . Buat figur baru atau aktifkan figur yang sudah ada menggunakan metode figure() Tambahkan '~. kapak. . Buat data acak size=(3, 3, 3) Ekstrak data x, y, dan z dari larik 3D Plot titik-titik tersebar 3D pada sumbu yang dibuat Untuk menampilkan gambar, gunakan metode show() Bisakah matplotlib melakukan grafik 3D?Pastikan bahwa versi Matplotlib Anda sudah lebih dari 1. 0. Sekarang setelah sumbu kita dibuat, kita dapat mulai memplot dalam 3D . Fungsi perencanaan 3D cukup intuitif. alih-alih hanya menyebarkan, kami memanggil scatter3D , dan alih-alih hanya meneruskan data x dan y, kami meneruskan x, y, dan z. |