Matplotlib adalah pustaka python yang digunakan untuk membuat grafik dan plot 2D dengan menggunakan skrip python. Memiliki modul bernama pyplot yang memudahkan plotting dengan menyediakan fitur untuk mengontrol gaya garis, properti font, sumbu pemformatan, dll. Mendukung berbagai macam grafik dan plot yaitu - histogram, diagram batang, spektrum daya, diagram kesalahan, dll. Ini digunakan bersama dengan NumPy untuk menyediakan lingkungan yang merupakan alternatif open source yang efektif untuk MatLab. Ini juga dapat digunakan dengan toolkit grafis seperti PyQt dan wxPython. Biasanya, paket diimpor ke skrip Python dengan menambahkan pernyataan berikut - from matplotlib import pyplot as plt Contoh MatplotlibSkrip berikut menghasilkan plot gelombang sinus menggunakan matplotlib. Contohimport numpy as np import matplotlib.pyplot as plt # Compute the x and y coordinates for points on a sine curve x = np.arange(0, 3 * np.pi, 0.1) y = np.sin(x) plt.title("sine wave form") # Plot the points using matplotlib plt.plot(x, y) plt.show() Its keluaran adalah sebagai berikut - Kita akan melihat banyak contoh penggunaan pustaka Matplotlib python dalam pekerjaan Data science di bab-bab berikutnya. Saya memiliki daftar 3-tupel yang mewakili sekumpulan titik dalam ruang 3D. Saya ingin menggambar permukaan yang mencakup semua titik ini. Fungsi plot_surface dalam paket mplot3d membutuhkan argumen X, Y dan Z yang merupakan array 2d. Apakah plot_surface fungsi yang tepat untuk memplot permukaan dan bagaimana cara mengubah data saya ke format yang diperlukan?
Untuk permukaan sedikit berbeda dari daftar 3-tupel, Anda harus memasukkan dalam kisi untuk domain dalam array 2d. Jika semua yang Anda miliki adalah daftar titik-titik 3d, daripada beberapa fungsi Inilah contoh permukaan yang halus:
Anda dapat membaca data langsung dari beberapa file dan plot
Jika perlu Anda bisa melewati vmin dan vmax untuk menentukan rentang colorbar, mis.
Bagian BonusSaya bertanya-tanya bagaimana cara membuat beberapa plot interaktif, dalam hal ini dengan data buatan
Saya baru saja menemukan masalah yang sama. Saya telah meratakan spasi data secara merata dalam 3 array 1-D dan
bukannya array 2-D yang
Itu adalah contoh aslinya. Menambahkan bit ini selanjutnya akan membuat plot yang sama dari array 3-D.
Berikut adalah angka yang dihasilkan: periksa contoh resmi. X, Y dan Z adalah memang array 2d, numpy.meshgrid () adalah cara sederhana untuk mendapatkan 2d x, y mesh keluar dari nilai 1d x dan y. http://matplotlib.sourceforge.net/mpl_examples/mplot3d/surface3d_demo.py inilah cara Pythonic untuk mengubah 3-tupel menjadi 3 array 1d.
Inilah triangulasi mtaplotlib delaunay (interpolasi), ini mengubah 1d x, y, z menjadi sesuatu yang sesuai (?): http://matplotlib.sourceforge.net/api/mlab_api.html#matplotlib.mlab.griddata Hanya untuk berpadu, Emanuel memiliki jawaban yang saya (dan mungkin banyak lainnya) cari. Jika Anda memiliki data tersebar 3d dalam 3 array terpisah, pandas adalah bantuan luar biasa dan bekerja jauh lebih baik daripada opsi lain. Untuk menguraikan, anggap x, y, z Anda adalah beberapa variabel arbitrer. Dalam kasus saya ini adalah c, gamma, dan kesalahan karena saya sedang menguji mesin vektor dukungan. Ada banyak pilihan potensial untuk memplot data:
Plot data wireframe 3d pencar data Kode terlihat seperti ini:
Ini adalah hasil akhirnya: Dalam Matlab saya melakukan sesuatu yang mirip menggunakan fungsi SciPy memiliki kelas Delaunay , yang didasarkan pada pustaka QHull yang mendasari yang sama dengan fungsi Dari sana, harus ada beberapa baris kode untuk mengonversinya
Merencanakan 3D Polygon dalam python-matplotlib contoh menjadi apa yang ingin Anda capai, karena Tidak mungkin membuat permukaan 3d secara langsung menggunakan data Anda. Saya akan merekomendasikan Anda untuk membangun model interpolasi menggunakan beberapa alat seperti pykridge . Proses ini akan mencakup tiga langkah:
Setelah membuat kisi-kisi Anda dan nilai-nilai |