Come generare in modo programmatico l'output del markdown nei notebook Jupyter?


94

Voglio scrivere un rapporto per le classi nel taccuino Jupyter. Vorrei contare alcune cose, generare alcuni risultati e includerli nel markdown. Posso impostare l'output della cella da interpretare come markdown?
Vorrei questo comando: print '$\phi$'per generare il simbolo phi, proprio come in markdown.
In altre parole, mi piacerebbe avere un template realizzato in markdown e inserire i valori generati dal programma scritti nel taccuino. Il ricalcolo del notebook dovrebbe generare nuovi risultati e un nuovo ribasso con quei nuovi valori inseriti. È possibile con questo software o devo sostituire i valori da solo?

Risposte:


137

Le funzioni desiderate si trovano nel modulo 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'))

1
Grazie mille, credo che questo dovrebbe aiutarmi in modo significativo. Se posso chiedere, c'è un modo per nascondere la cella con il codice? Voglio dire, quando "compilo" la cella di markdown, il "codice" scompare e solo l'output del markdown compilato è visibile. Mi piacerebbe poterlo ripetere, ma con la display_markdownfunzione.
fulaphex

2
Sfortunatamente il tuo codice non funziona per me, non produce alcun output.
fulaphex

1
Ora funziona davvero, grazie. Esiste un comando per nascondere una cella, in modo che io possa generare questo markdown e questo si comporterebbe, come una normale cella di markdown?
fulaphex

2
Il collegamento nel commento precedente non funziona più, l'estensione ora può essere trovata su: github.com/ipython-contrib/jupyter_contrib_nbextensions/tree/…
BioGeek

1
Ottengo l'oggetto non la stampa:<IPython.core.display.Markdown object>
loretoparisi

30

In pratica stai chiedendo due cose diverse:

  1. Celle di markdown che restituiscono i risultati del codice.

    Vorrei contare alcune cose, generare alcuni risultati e includerli nel markdown. [...] Mi piacerebbe avere un template in markdown e inserire i valori generati dal programma nel notebook

  2. Celle di codice che emettono markdown

    Vorrei questo comando: print '$\phi$'per generare il simbolo phi, proprio come in markdown.

Poiché 2. è già coperto da un'altra risposta (fondamentalmente: usa Latex()o Markdown()importato da IPython.display), mi concentrerò sulla prima:


1. Markdown Template con variabili inserite

Con l'estensione Jupyter Python Markdown è effettivamente possibile fare esattamente quello che descrivi.

Le istruzioni di installazione possono essere trovate sulla pagina github di nbextensions. Assicurati di abilitare l'estensione markdown python utilizzando un comando jupyter o il configuratore dell'estensione .

Con l'estensione, si accede alle variabili tramite {{var-name}}. Un esempio per un tale modello di markdown potrebbe essere simile a questo:

Codice Python nelle celle Markdown

La variabile a è {{a}}

Puoi anche incorporare LateX: {{b}} qui!

Anche le immagini possono essere incorporate: {{i}}

Naturalmente tutte le variabili o immagini a, b, idovrebbero essere fissati nel codice precedente. E ovviamente puoi anche usare espressioni in stile Markdown-Latex (come $\phi$) senza il comando print. Questa immagine proviene dal wiki dell'estensione, dimostrando la capacità.

esempio da wiki


Ulteriori informazioni su questa funzionalità integrata in ipython / jupyter sono discusse nei tracker dei problemi per ipython e jupyter .


È disponibile in Jupyter Lab?
BND

Non lo uso, quindi non ho esperienza. Tuttavia non riesco a trovare "Python Markdown" nell'elenco delle estensioni di jupyter-lab: github.com/topics/jupyterlab-extension?q=&unscoped_q= - quindi: forse no?
Honeybear
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.