Matematika itu indah, dan perangkat lunak yang kita miliki di ujung jari kita merupakan cara yang tak ternilai untuk menjelajahi keindahan itu. Belum pernah sebelumnya kita dapat memvisualisasikan dan bereksperimen dengan objek matematika sedemikian rupa sehingga dapat diakses Show
Hari ini, saya ingin menguraikan langkah-langkah yang diperlukan untuk memplot fungsi dua variabel menggunakan Python Sepanjang jalan, kita akan belajar tentang beberapa prosedur NumPy yang akan membuat Anda memanipulasi matriks seperti seorang penyihir. Saya telah memecah proses menjadi tiga langkah konseptual yang juga akan membantu menyegarkan matematika yang mendasarinya Terakhir, saya menyatukan semuanya menjadi fungsi yang dapat Anda gunakan di luar kotak, jadi jangan ragu untuk melewatinya jika hanya itu yang Anda butuhkan. Tentukan Domain Fungsi Fungsi matematika adalah peta yang mengambil elemen dari satu set dan menghubungkannya dengan satu elemen dari set lainnya. Kumpulan input pertama ini disebut domain fungsi. Dalam kasus kami, domain akan terdiri dari tupel bilangan real Meskipun ada banyak bilangan real tak terhingga di dalam interval apa pun, kami jelas tidak dapat menyimpan himpunan tak terhingga untuk domain kami. Agar plot kita terlihat bagus, cukup mengambil sampel poin yang cukup dalam domain kita sehingga produk akhir akan terlihat halus dan tidak bergerigi secara tidak wajar Dengan pemikiran ini, kita dapat mendefinisikan domain kita dan menyimpannya dalam satu set array dalam tiga langkah
x_interval = (-2, 2) 2. Titik sampel dalam setiap interval ini x_points = np.linspace(x_interval[0], x_interval[1], 100) _3. Ambil produk Cartesian dari dua set sampel ini untuk menghasilkan dua larik yang (ketika ditumpuk) membentuk satu set pasangan terurut yang dapat kita hitung fungsinya X, Y = np.meshgrid(x_points, y_points) Dalam mendefinisikan domain kami, kami menggunakan beberapa alat berguna dari NumPy
Hitung Nilai Fungsi Langkah selanjutnya adalah mengaitkan nilai keluaran dengan setiap titik di domain masukan kami. Ini adalah titik di mana kita bisa bermain-main dengan fungsi yang berbeda. Saya menemukan “Functions 3D. Contoh” halaman web untuk menjadi sumber inspirasi yang baik Kami dapat menghitung rangkaian keluaran kami dalam tiga langkah, sekali lagi
def func3d(x, y): 2. Menghasilkan versi vektor dari fungsi yang dapat dipanggil pada vektor atau matriks input func3d_vectorized = np.vectorize(func3d) _3. Hitung array keluaran dari dua array domain kami Z = func3d_vectorized(X, Y) Fungsi x_points = np.linspace(x_interval[0], x_interval[1], 100) 2 yang disediakan oleh NumPy sangat berguna dalam memperluas fungsi khusus yang ditulis dengan Python ke matriks dan array ndarray. Ini sangat meningkatkan fleksibilitas NumPy dan layak ditambahkan ke perangkat AndaPlot Fungsinya Dari titik ini, semuanya berjalan dengan cara yang hampir sama seperti saat membuat plot 2D dengan Matplotlib. Hanya beberapa nama argumen dan metode yang perlu diubah untuk menghasilkan visualisasi 3D yang indah
plt.figure(figsize=(20, 10)) 2. Pilih metode plotting objek axes dan panggil pada data fungsi kita ax.plot_surface(X, Y, Z, rstride=1, cstride=1, 3. Tetapkan atribut plot lainnya, seperti judul dan label sumbu ax.set(xlabel=”x”, ylabel=”y”, zlabel=”f(x, y)”, Untuk metode dan argumen plot lainnya, lihat tutorial mplot3d. Untuk peta warna lainnya untuk argumen cmap, lihat tutorial peta warna Matplotib Menyatukan Semuanya Untuk membuat prosesnya lebih dapat direproduksi, saya telah mengemas semua langkah ini bersama-sama ke dalam fungsi Python untuk menghasilkan plot permukaan yang cepat Sekarang, mengemas dan memodulasi utilitas perencanaan masih sedikit seni, dan itu tergantung pada preferensi pribadi. Terutama dengan perpustakaan seperti Matplotlib, yang berevolusi dari alat plotting yang dimaksudkan terutama untuk penggunaan interaktif (plot MATLAB), mungkin terasa sedikit tidak wajar mengadaptasi urutan kode yang meminta efek sampingnya menjadi sesuatu yang lebih fungsional Di bawah ini adalah pertimbangan utama yang saya buat dalam membungkus kode plotting 3D. Saya cenderung harus membuat keputusan serupa saat membuat utilitas perencanaan lainnya Parameter untuk dieksposKenop utama yang ingin saya sesuaikan adalah domain fungsi, perincian tempat kisi domain dibuat, dan fungsi aktual yang akan digunakan untuk menghasilkan output. Oleh karena itu, ini adalah tiga argumen pertama saya Kadang-kadang saya suka juga mengekspos parameter metode plotting atau pengaturan atribut untuk objek figure atau axes. Dalam hal ini, saya mengekspos atribut judul sebagai sesuatu yang dapat saya atur selama pemanggilan fungsi awal saya Menggunakan x_points = np.linspace(x_interval[0], x_interval[1], 100)y_points = np.linspace(y_interval[0], y_interval[1], 100)_4 atau x_points = np.linspace(x_interval[0], x_interval[1], 100)y_points = np.linspace(y_interval[0], y_interval[1], 100)5Saya suka menggunakan x_points = np.linspace(x_interval[0], x_interval[1], 100) _6 untuk meneruskan argumen ke metode plotting sehingga saya dapat dengan cepat bereksperimen dengan peta warna alternatif dan parameter estetika lainnyaIngat, nama x_points = np.linspace(x_interval[0], x_interval[1], 100) _7 hanyalah sebuah konvensi, jadi terkadang saya suka menamainya dengan lebih deskriptifMengembalikan objekSaya memiliki preferensi untuk pemrograman fungsional, jadi saya mencoba merancang bahkan fungsi plotting saya agar terasa seperti tidak memiliki efek samping. Dengan menggunakan x_points = np.linspace(x_interval[0], x_interval[1], 100) _8 dan mengembalikan objek figur dan kapak saya, saya secara efektif memisahkan pembuatan dan visualisasi plot sayaMeskipun secara teknis ini tidak menghilangkan efek samping Matplotlib, melainkan membersihkannya sebelum mereka dapat melakukan apa pun, itu masih cukup untuk memuaskan saya. Mengembalikan objek figur dan sumbu memungkinkan penyesuaian atau perubahan lebih lanjut. Misalnya, untuk mengubah ukuran gambar, Anda dapat memanggil x_points = np.linspace(x_interval[0], x_interval[1], 100) 9. Untuk mengubah judul plot, Anda dapat menghubungi X, Y = np.meshgrid(x_points, y_points) 0Kesimpulan Sekarang, kita mengetahui langkah-langkah yang diperlukan untuk menghasilkan visualisasi 3D agar keindahan matematika lebih mudah diakses di ujung jari kita Untuk meninjau, langkah-langkahnya adalah
Anda juga harus melihat bagaimana saya mengemas kode menjadi sesuatu yang dapat digunakan kembali. Saya secara singkat membahas desain antarmuka, berbicara tentang parameter mana yang akan diekspos secara langsung, metode internal mana yang akan digunakan untuk meneruskan argumen menggunakan X, Y = np.meshgrid(x_points, y_points) 5 atau x_points = np.linspace(x_interval[0], x_interval[1], 100) 7, dan bagaimana mengembalikan objek figur dan sumbu dapat memungkinkan penyesuaian lebih lanjut sambil membuat kode terasa lebih fungsionalJangan ragu untuk membagikan fungsi paling keren yang Anda temukan. Poin bonus jika Anda memasukkan kode Anda. Selamat merencanakan Bagaimana Anda membuat grafik fungsi 3D dengan Python?Kita juga dapat memplot permukaan 3D dengan Python, fungsi untuk memplot permukaan 3D adalah plot_surface(X,Y,Z) , di mana . Fungsi plot permukaan yang paling umum adalah selancar dan kontur. COBALAH.
Bagaimana Anda memplot kotak 3D dengan Python?Plot 3d diaktifkan dengan mengimpor toolkit mplot3d . , yang disertakan dengan Matplotlib standar Anda. Setelah mengimpor, plot 3D dapat dibuat dengan meneruskan kata kunci proyeksi=”3d” ke salah satu fungsi pembuatan sumbu biasa di Matplotlib.
Bagaimana Anda memplot array 3D dengan Python?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 Python membuat grafik 3D?Python memungkinkan untuk membuat bagan 3D berkat toolkit mplot3d dari perpustakaan matplotlib . Namun, harap dicatat bahwa bagan 3d paling sering merupakan praktik yang buruk. Bagian ini berfokus pada plot pencar 3d dan plot permukaan yang merupakan beberapa kasus penggunaan yang menarik. |