Bagaimana cara menghasilkan output penurunan harga secara terprogram di notebook Jupyter?

97

Saya ingin menulis laporan untuk kelas di notebook Jupyter. Saya ingin menghitung beberapa hal, menghasilkan beberapa hasil dan memasukkannya ke dalam penurunan harga. Dapatkah saya mengatur keluaran sel untuk diinterpretasikan sebagai penurunan harga?
Saya ingin perintah seperti itu: print '$\phi$'untuk menghasilkan simbol phi, seperti dalam penurunan harga.
Dengan kata lain, saya ingin templat dibuat dalam penurunan harga dan memasukkan nilai yang dihasilkan oleh program yang tertulis di buku catatan. Menghitung ulang buku catatan akan menghasilkan hasil baru dan penurunan harga baru dengan memasukkan nilai-nilai baru tersebut. Apakah itu mungkin dengan perangkat lunak ini, atau apakah saya perlu mengganti nilainya sendiri?

fulaphex
sumber

Jawaban:

141

Fungsi yang Anda inginkan ada di modul IPython.display .

from IPython.display import display, Markdown, Latex
display(Markdown('*some markdown* $\phi$'))
# If you particularly want to display maths, this is more direct:
display(Latex('\phi'))
Thomas K
sumber
1
Terima kasih banyak, saya rasa ini akan membantu saya secara signifikan. Jika saya boleh bertanya, apakah ada cara untuk menyembunyikan sel dengan kode? Maksud saya, ketika saya "mengkompilasi" sel penurunan harga, "kode" menghilang dan hanya keluaran penurunan harga yang dikompilasi yang terlihat. Saya ingin bisa mengulangi ini, tetapi dengan display_markdownfungsi.
fulaphex
2
Sayangnya kode Anda tidak berfungsi untuk saya, tidak menghasilkan keluaran apa pun.
fulaphex
1
Sekarang memang berhasil, terima kasih. Apakah ada perintah untuk menyembunyikan sel, sehingga saya dapat menghasilkan penurunan harga ini dan ini akan berperilaku, seperti sel penurunan harga normal?
fulaphex
2
Tautan di komentar sebelumnya tidak berfungsi lagi, ekstensinya sekarang dapat ditemukan di: github.com/ipython-contrib/jupyter_contrib_nbextensions/tree/…
BioGeek
2
Saya mendapatkan objek bukan cetak:<IPython.core.display.Markdown object>
loretoparisi
31

Anda pada dasarnya meminta dua hal yang berbeda:

  1. Markdown sel mengeluarkan hasil kode.

    Saya ingin menghitung beberapa hal, menghasilkan beberapa hasil dan memasukkannya ke dalam penurunan harga. [...] Saya ingin memiliki templat dalam penurunan harga dan memasukkan nilai yang dihasilkan oleh program di buku catatan

  2. Sel kode mengeluarkan penurunan harga

    Saya ingin perintah seperti itu: print '$\phi$'untuk menghasilkan simbol phi, seperti dalam penurunan harga.

Karena 2. sudah tercakup oleh jawaban lain (pada dasarnya: menggunakan Latex()atau Markdown()diimpor dari IPython.display), saya akan fokus pada yang pertama:


1. Template Markdown dengan variabel yang disisipkan

Dengan ekstensi Jupyter Python Markdown , sebenarnya dimungkinkan untuk melakukan apa yang Anda gambarkan.

Petunjuk penginstalan dapat ditemukan di halaman github dari nbextensions. Pastikan Anda akan mengaktifkan ekstensi penurunan harga python menggunakan perintah jupyter atau konfigurasi ekstensi .

Dengan ekstensi, variabel diakses melalui {{var-name}}. Contoh untuk template penurunan harga seperti ini:

Kode Python dalam Sel Markdown

Variabel a adalah {{a}}

Anda juga dapat menyematkan LateX: {{b}} di sini!

Bahkan gambar dapat disematkan: {{i}}

Tentu semua variabel atau gambar a, b, iharus ditetapkan dalam kode sebelumnya. Dan tentu saja Anda juga dapat menggunakan ekspresi gaya Markdown-Latex (seperti $\phi$) tanpa perintah cetak. Gambar ini berasal dari wiki ekstensi, mendemonstrasikan kemampuannya.

contoh dari wiki


Info lebih lanjut tentang fungsi ini yang terintegrasi ke dalam ipython / jupyter dibahas di pelacak masalah bagi ipython dan jupyter .

Beruang Madu
sumber
Apakah ini tersedia di Jupyter Lab?
BND
Saya tidak menggunakan itu, karenanya tidak punya pengalaman. Namun saya tidak dapat menemukan "Python Markdown" di daftar ekstensi jupyter-lab: github.com/topics/jupyterlab-extension?q=&unscoped_q= - oleh karena itu: mungkin tidak?
Honeybear