Bisakah seseorang menjelaskan kepada saya apa sebenarnya gunanya %matplotlib inline
?
Bisakah seseorang menjelaskan kepada saya apa sebenarnya gunanya %matplotlib inline
?
Jawaban:
%matplotlib
adalah fungsi ajaib di IPython. Saya akan mengutip dokumentasi yang relevan di sini untuk Anda baca agar nyaman:
IPython memiliki seperangkat 'fungsi ajaib' yang telah ditentukan yang dapat Anda panggil dengan sintaks gaya baris perintah. Ada dua macam sihir, berorientasi garis dan berorientasi sel. Magics baris diawali dengan karakter% dan bekerja sangat mirip dengan panggilan baris perintah OS: mereka mendapatkan sebagai argumen sisa baris, di mana argumen dilewatkan tanpa tanda kurung atau tanda kutip. Magics Lines dapat mengembalikan hasil dan dapat digunakan di sisi kanan tugas. Magics sel diawali dengan %% ganda, dan mereka adalah fungsi yang mendapatkan sebagai argumen tidak hanya sisa baris, tetapi juga baris di bawahnya dalam argumen terpisah.
%matplotlib inline
set backend dari matplotlib ke backend 'inline' :
Dengan backend ini, output dari perintah plotting ditampilkan inline di dalam frontend seperti notebook Jupyter, tepat di bawah sel kode yang memproduksinya. Plot yang dihasilkan kemudian akan disimpan dalam dokumen notebook.
Saat menggunakan backend 'inline', grafik matplotlib Anda akan dimasukkan dalam buku catatan Anda, di sebelah kode. Mungkin patut juga membaca Cara membuat notebook IPython matplotlib sebaris inline untuk referensi tentang cara menggunakannya dalam kode Anda.
Jika Anda ingin interaktivitas juga, Anda dapat menggunakan backend nbagg dengan %matplotlib notebook
(dalam IPython 3.x), seperti dijelaskan di sini .
Asalkan Anda menjalankan IPython, itu %matplotlib inline
akan membuat output plot Anda muncul dan disimpan di dalam notebook.
Menurut dokumentasi
Untuk mengatur ini, sebelum merencanakan atau mengimpor apa
matplotlib
pun dilakukan, Anda harus menjalankan%matplotlib magic command
. Ini melakukan pengaturan di belakang layar yang diperlukan untuk IPython agar dapat bekerja bersama dengan benarmatplotlib
; Namun, itu tidak benar-benar menjalankan perintah impor Python, yaitu, tidak ada nama yang ditambahkan ke namespace.Backend yang sangat menarik, disediakan oleh IPython, adalah
inline
backend. Ini hanya tersedia untuk Notebook Jupyter dan Jupyter QtConsole. Itu dapat dipanggil sebagai berikut:%matplotlib inline
Dengan backend ini, output dari perintah plotting ditampilkan inline di dalam frontend seperti notebook Jupyter, tepat di bawah sel kode yang memproduksinya. Plot yang dihasilkan kemudian akan disimpan dalam dokumen notebook.
Jika Anda ingin menambahkan plot ke notebook Jupyter Anda, maka itu %matplotlib inline
adalah solusi standar. Dan ada perintah sihir lain yang akan digunakan secara matplotlib
interaktif di dalam Jupyter.
%matplotlib
: plt
perintah plot apa pun sekarang akan menyebabkan jendela gambar terbuka, dan perintah lebih lanjut dapat dijalankan untuk memperbarui plot. Beberapa perubahan tidak akan menggambar secara otomatis, untuk memaksa pembaruan, gunakanplt.draw()
%matplotlib notebook
: akan menghasilkan plot interaktif yang tertanam di dalam notebook, Anda dapat memperbesar dan mengubah ukuran gambar
%matplotlib inline
: hanya menggambar gambar statis di notebook
Dimulai dengan IPython 5.0 dan matplotlib 2.0 Anda dapat menghindari penggunaan sulap khusus dan penggunaan IPython
matplotlib.pyplot.ion()/matplotlib.pyplot.ioff()
yang memiliki keuntungan bekerja di luar IPython juga.
inline
, plot dibuat di jendela luar dan Anda perlu menggunakan display () untuk menunjukkannya di notebook.
Ini berarti bahwa setiap grafik yang kita buat sebagai bagian dari kode kita akan muncul di buku catatan yang sama dan tidak di jendela terpisah yang akan terjadi jika kita belum menggunakan pernyataan ajaib ini.
Jika Anda tidak tahu apa itu backend, Anda dapat membaca ini: https://matplotlib.org/tutorials/introductory/usage.html#backends
Beberapa orang menggunakan matplotlib secara interaktif dari cangkang python dan telah merencanakan jendela yang muncul ketika mereka mengetik perintah. Beberapa orang menjalankan notebook Jupyter dan menggambar plot inline untuk analisis data cepat. Lainnya menanamkan matplotlib ke antarmuka pengguna grafis seperti wxpython atau pygtk untuk membangun aplikasi yang kaya. Beberapa orang menggunakan matplotlib dalam skrip batch untuk menghasilkan gambar postscript dari simulasi numerik, dan yang lain menjalankan server aplikasi web untuk secara dinamis menyajikan grafik. Untuk mendukung semua kasus penggunaan ini, matplotlib dapat menargetkan keluaran yang berbeda, dan masing-masing kemampuan ini disebut backend; "frontend" adalah kode yang menghadap pengguna, yaitu kode plotting, sedangkan "backend" melakukan semua kerja keras di belakang layar untuk membuat gambar.
Jadi, ketika Anda mengetik% matplotlib inline, itu mengaktifkan backend inline. Seperti yang dibahas dalam posting sebelumnya:
Dengan backend ini, output dari perintah plotting ditampilkan inline di dalam frontend seperti notebook Jupyter, tepat di bawah sel kode yang memproduksinya. Plot yang dihasilkan kemudian akan disimpan dalam dokumen notebook.
TL; DR
%matplotlib inline
- Menampilkan inline outputKernel IPython memiliki kemampuan untuk menampilkan plot dengan mengeksekusi kode. Kernel IPython dirancang untuk bekerja dengan mulus dengan pustaka plot matplotlib untuk menyediakan fungsionalitas ini.
%matplotlib
adalah perintah ajaib yang melakukan pengaturan di belakang layar yang diperlukan untuk IPython agar dapat bekerja dengan benar bersama-samamatplotlib
; itu tidak menjalankan perintah impor Python, yaitu, tidak ada nama yang ditambahkan ke namespace.
%matplotlib
(hanya tersedia untuk Notebook Jupyter dan Jupyter QtConsole)
%matplotlib inline
(nilai yang valid 'GTK3Agg', 'GTK3Cairo', 'MacOSX', 'nbAgg', 'Qt4Agg', 'Qt4Cairo', 'Qt5Agg', 'Qt5Cairo', 'TkAgg', 'TkCairo', 'WebAgg', 'WX', 'WXAgg', 'WXCairo', 'agg', 'cairo', 'pdf', 'pgf', 'ps', 'svg', 'template'
)
%matplotlib gtk
Contoh - GTK3Agg - Agg rendering ke kanvas GTK 3.x (membutuhkan PyGObject dan pycairo atau cairocffi).
Lebih detail tentang backend interaktif matplotlib: di sini
Mulai dengan
IPython 5.0
danmatplotlib 2.0
Anda dapat menghindari penggunaan sihir khusus IPython dan penggunaanmatplotlib.pyplot.ion()
/matplotlib.pyplot.ioff()
yang memiliki keuntungan bekerja di luar IPython juga.
Asalkan Anda menjalankan Jupyter Notebook, perintah% matplotlib inline akan membuat output plot Anda muncul di notebook, juga dapat disimpan.
Tidak wajib menulis itu. Ini bekerja dengan baik untuk saya tanpa ( %matplotlib
) fungsi ajaib. Saya menggunakan kompiler Sypder, yang ada di Anaconda.