Tengo un cuaderno de ipython / jupyter que visualizo usando NBviewer.
¿Cómo puedo ocultar todo el código del cuaderno representado por NBviewer, de modo que solo se muestre la salida del código (por ejemplo, gráficos y tablas) y las celdas de reducción?
javascript
ipython
ipython-notebook
lucacerona
fuente
fuente
Respuestas:
fuente
<form action ... > ... </form>
con HTML simple comoThe raw code for this IPython notebook is by default hidden for easier reading.To toggle on/off the raw code, click <a href="javascript:code_toggle()">here</a>.
Esto ahora es posible directamente desde nbconvert a partir de la versión 5.2.1 : el contenido se puede filtrar utilizando las opciones de exclusión de exportador de plantillas incorporadas . Por ejemplo:
excluirá las celdas de "código de entrada", es decir, el código mismo. Existen opciones similares para excluir solicitudes, celdas de reducción, o salidas, o entradas y salidas.
(Estas opciones deberían funcionar independientemente del formato de salida).
fuente
Lo usaría
hide_input_all
de nbextensions ( https://github.com/ipython-contrib/IPython-notebook-extensions ). Así es cómo:Averigüe dónde está su directorio IPython:
Descargue nbextensions y muévalo al directorio IPython.
Edite su archivo custom.js en algún lugar del directorio IPython (el mío estaba en profile_default / static / custom ) para que sea similar al custom.example.js en el directorio nbextensions .
Agregue esta línea a custom.js :
IPython Notebook ahora tendrá un botón para alternar celdas de código, sin importar el libro de trabajo.
fuente
La versión más reciente del cuaderno de IPython ya no permite ejecutar javascript en celdas de descuento, por lo que agregar una nueva celda de descuento con el siguiente código de javascript ya no funcionará para ocultar las celdas de código (consulte este enlace )
Cambie ~ / .ipython / profile_default / static / custom / custom.js como se muestra a continuación:
fuente
Escribí un código que lo logra y agrega un botón para alternar la visibilidad del código.
Lo siguiente va en una celda de código en la parte superior de un cuaderno:
Puede ver un ejemplo de cómo se ve esto en NBviewer aquí .
Actualización: Esto tendrá un comportamiento divertido con las celdas Markdown en Jupyter, pero funciona bien en la versión de exportación HTML del cuaderno.
fuente
'.input_area'
y'.prompt'
, use'div.input'
y funciona como un encanto! Así que para recapitular, sustitutojQuery("div.input").toggle();
en lugar deljQuery('.input_area').toggle(); jQuery('.prompt').toggle();
. @Max Masnick, ¿podrías arreglar tu respuesta?CSS = """#notebook div.output_subarea { max-width:100%;"""
HTML('<style>{}</style>'.format(CSS))
. Esto es muy útil para imprimir.Esto se puede hacer usando un
ToggleButton
widget de IPython y un poco de JavaScript. El siguiente código debe colocarse en una celda de código en la parte superior del documento:Esto crea el siguiente botón para alternar mostrar / ocultar el código para el Jupyter Notebook, por defecto en el estado "ocultar":
Cuando se establece en el estado "mostrar", puede ver el código para el Jupyter Notebook:
Por otro lado, si bien gran parte de este código debe colocarse al comienzo del Notebook, la ubicación del botón de alternancia es opcional. Personalmente, prefiero mantenerlo al final del documento. Para hacerlo, simplemente mueva la
display(button)
línea a una celda de código separada en la parte inferior de la página:fuente
Hay una buena solución proporcionada aquí que funciona bien para los cuadernos exportados a HTML. El sitio web incluso enlaza aquí con esta publicación SO, ¡pero no veo la solución de Chris aquí! (Chris, ¿dónde estás?)
Esta es básicamente la misma solución que la respuesta aceptada de harshil, pero tiene la ventaja de ocultar el código de alternancia en el HTML exportado. También me gusta que este enfoque evite la necesidad de la función HTML de IPython.
Para implementar esta solución, agregue el siguiente código a una celda 'Raw NBConvert' en la parte superior de su computadora portátil:
Luego, simplemente exporte el cuaderno a HTML. Habrá un botón de alternar en la parte superior del cuaderno para mostrar u ocultar el código.
Chris también proporciona un ejemplo aquí .
Puedo verificar que esto funciona en Jupyter 5.0.0
Actualización : también es conveniente mostrar / ocultar los
div.prompt
elementos junto con losdiv.input
elementos. Esto elimina laIn [##]:
yOut: [##]
texto y reduce los márgenes de la izquierda.fuente
$('div.output').next().hide('500');
para ocultar la próxima salida? Lo he intentado yo mismo pero no puedo hacer que esto funcione.Para una mejor visualización con un documento impreso o un informe, también debemos eliminar el botón y la capacidad de mostrar u ocultar ciertos bloques de código. Esto es lo que uso (simplemente copie y pegue esto en su primera celda):
Luego en tus siguientes celdas:
y
fuente
Esto generará una salida de notebook IPython. Sin embargo, notará que podrá ver el código de entrada. Puede copiar un cuaderno y luego agregar este código si es necesario para compartirlo con alguien que no necesita ver el código.
fuente
from IPython.display import HTML HTML('''<script> $('div.input').show()''')
Convierta la celda a Markdown y use la
<details>
etiqueta HTML5 como en el ejemplojoyrexus
:https://gist.github.com/joyrexus/16041f2426450e73f5df9391f7f7ae5f
fuente
Aquí hay otra solución sugerida por p3trus :
Según lo descrito por p3trus : "[Se] agrega un botón a la barra de herramientas del cuaderno de ipython para ocultar / mostrar la celda del código de entrada. Para usarlo, debe colocar el archivo custom.js en su
.ipython_<profile name>/static/custom/
carpeta, donde es el perfil de ipython en uso ".Mis propios comentarios: verifiqué esta solución y funciona con iPython 3.1.0.
fuente
La solución aceptada también funciona en julia Jupyter / IJulia con las siguientes modificaciones:
nota en particular:
display
función$
signo (de lo contrario visto como una variable)fuente
Aquí hay un buen artículo (el mismo que publicó @Ken) sobre cómo pulir los cuadernos Jpuyter (el nuevo IPython) para su presentación. Hay innumerables formas de extender Jupyter usando JS, HTML y CSS, incluida la capacidad de comunicarse con el núcleo de Python del portátil desde javascript. Hay decoradores mágicas para
%%HTML
y%%javascript
por lo que sólo puede hacer algo como esto en una célula por sí mismo:También puedo garantizar que los métodos de Chris funcionan en jupyter 4.XX
fuente
Solución muy fácil usando la consola del navegador. Copie esto en la consola de su navegador y presione enter:
Luego, alterna el código de la celda simplemente haciendo clic en el número de entrada de la celda.
fuente
(Papel) Imprimir o guardar como HTML
Para aquellos de ustedes que desean imprimir en papel las salidas, las respuestas anteriores parecen no dar una buena salida final. Sin embargo, tomar el código de @Max Masnick y agregar lo siguiente le permite a uno imprimirlo en una página A4 completa.
La razón de la sangría es que la sección de solicitud eliminada por Max Masnick significa que todo se desplaza a la izquierda en la salida. Sin embargo, esto no hizo nada para el ancho máximo de la salida que estaba restringido a
max-width:100%-14ex;
. Esto cambia el ancho máximo de output_subarea amax-width:100%;
.fuente
Con todas las soluciones anteriores a pesar de que está ocultando el código, aún obtendrá la
[<matplotlib.lines.Line2D at 0x128514278>]
basura por encima de su figura que probablemente no desee.Si realmente desea deshacerse de la entrada en lugar de solo ocultarla, creo que la solución más limpia es guardar sus figuras en el disco en celdas ocultas, y luego simplemente incluir las imágenes en las celdas Markdown usando, por ejemplo
![Caption](figure1.png)
.fuente
_ = plt.plot()
para que no se imprima[<>]
basurafuente
fuente