¿Cómo generar mediante programación una salida de rebajas en los cuadernos de Jupyter?

97

Quiero escribir un informe para las clases en el cuaderno Jupyter. Me gustaría contar algunas cosas, generar algunos resultados e incluirlos en la rebaja. ¿Puedo configurar la salida de la celda para que se interprete como rebaja?
Me gustaría ese comando: print '$\phi$'generar el símbolo phi, como en la rebaja.
En otras palabras, me gustaría tener una plantilla hecha en markdown e insertar los valores generados por el programa escritos en el cuaderno. Recalcular el cuaderno debería generar nuevos resultados y nuevas rebajas con esos nuevos valores insertados. ¿Es eso posible con este software, o necesito reemplazar los valores por mí mismo?

fulaphex
fuente

Respuestas:

141

Las funciones que desea están en el módulo 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
fuente
1
Muchas gracias, creo que esto debería ayudarme significativamente. Si puedo preguntar, ¿hay alguna forma de ocultar la celda con el código? Quiero decir, cuando "compilo" la celda de rebajas, el "código" desaparece y sólo la salida compilada de rebajas es visible. Me gustaría poder repetir esto, pero con display_markdownfunción.
fulaphex
2
Desafortunadamente, su código no me funciona, no produce ningún resultado.
fulaphex
1
Ahora sí que funciona, gracias. ¿Existe un comando para ocultar una celda, de modo que pueda generar esta rebaja y esto se comportaría, como una celda de rebaja normal?
fulaphex
2
El enlace en el comentario anterior ya no funciona, la extensión ahora se puede encontrar en: github.com/ipython-contrib/jupyter_contrib_nbextensions/tree/…
BioGeek
2
Obtengo el objeto, no la impresión:<IPython.core.display.Markdown object>
loretoparisi
31

Básicamente estás pidiendo dos cosas diferentes:

  1. Celdas de Markdown que generan resultados de código.

    Me gustaría contar algunas cosas, generar algunos resultados e incluirlos en la rebaja. [...] Me gustaría tener una plantilla en markdown e insertar valores generados por el programa en el cuaderno

  2. Celdas de código que generan rebajas

    Me gustaría ese comando: print '$\phi$'generar el símbolo phi, como en la rebaja.

Dado que 2. ya está cubierto por otra respuesta (básicamente: useLatex() o Markdown()importado de IPython.display), me centraré en la primera:


1. Plantilla de Markdown con variables insertadas

Con la extensión Jupyter Python Markdown de en realidad es posible hacer exactamente lo que describe.

Las instrucciones de instalación se pueden encontrar en la página de github de nbextensions. Asegúrese de habilitar la extensión de rebajas de python usando un comando jupyter o el configurador de extensiones .

Con la extensión, se accede a las variables a través de {{var-name}} . Un ejemplo de una plantilla de rebajas de este tipo podría verse así:

Código Python en celdas de Markdown

La variable a es {{a}}

¡También puede insertar LateX: {{b}} aquí!

Incluso se pueden insertar imágenes: {{i}}

Naturalmente, todas las variables o imágenes a, b, ideberían fijarse en el código anterior. Y, por supuesto, también puede utilizar expresiones de estilo Markdown-Latex (como $\phi$) sin el comando de impresión. Esta imagen es de la wiki de la extensión, lo que demuestra la capacidad.

ejemplo de wiki


Más información sobre esta funcionalidad que se integra en ipython / jupyter se analiza en los rastreadores de problemas para ipython y jupyter .

Oso de miel
fuente
¿Está disponible en Jupyter Lab?
BND
No lo uso, por lo tanto, no tengo experiencia. Sin embargo, no puedo encontrar "Python Markdown" en la lista de extensiones de jupyter-lab: github.com/topics/jupyterlab-extension?q=&unscoped_q= - por lo tanto: ¿tal vez no?
Honeybear