J'ai un notebook ipython / jupyter que je visualise à l'aide de NBviewer.
Comment puis-je masquer tout le code du bloc-notes rendu par NBviewer, de sorte que seule la sortie du code (par exemple les graphiques et les tableaux) et les cellules de démarquage soient affichées?
javascript
ipython
ipython-notebook
lucacérone
la source
la source
Réponses:
la source
<form action ... > ... </form>
par du HTML simple commeThe 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>.
Ceci est désormais possible directement depuis nbconvert à partir de la version 5.2.1 : le contenu peut être filtré à l'aide des options d'exclusion intégrées de l' exportateur de modèles . Par exemple:
exclura les cellules "code d'entrée", c'est-à-dire le code lui-même. Des options similaires existent pour exclure les invites, les cellules de démarque ou les sorties, ou à la fois les entrées et les sorties.
(Ces options devraient fonctionner quel que soit le format de sortie.)
la source
J'utiliserais à
hide_input_all
partir de nbextensions ( https://github.com/ipython-contrib/IPython-notebook-extensions ). Voici comment:Découvrez où se trouve votre répertoire IPython:
Téléchargez nbextensions et déplacez-les dans le répertoire IPython.
Modifiez votre fichier custom.js quelque part dans le répertoire IPython (le mien était dans profile_default / static / custom ) pour qu'il soit similaire au custom.example.js dans le répertoire nbextensions .
Ajoutez cette ligne à custom.js :
IPython Notebook aura désormais un bouton pour basculer les cellules de code, quel que soit le classeur.
la source
La dernière version du notebook IPython ne permet plus d'exécuter javascript dans les cellules markdown, donc l'ajout d'une nouvelle cellule markdown avec le code javascript suivant ne fonctionnera plus pour masquer vos cellules de code (reportez-vous à ce lien )
Modifiez ~ / .ipython / profile_default / static / custom / custom.js comme ci-dessous:
la source
J'ai écrit un code qui accomplit cela et ajoute un bouton pour basculer la visibilité du code.
Ce qui suit va dans une cellule de code en haut d'un bloc-notes:
Vous pouvez voir un exemple de ce à quoi cela ressemble dans NBviewer ici .
Mise à jour: Cela aura un comportement amusant avec les cellules Markdown dans Jupyter, mais cela fonctionne bien dans la version d'exportation HTML du notebook.
la source
'.input_area'
et'.prompt'
, utilisez'div.input'
et cela fonctionne comme un charme! Donc, pour récapituler, remplacez-lejQuery("div.input").toggle();
parjQuery('.input_area').toggle(); jQuery('.prompt').toggle();
. @Max Masnick, pourriez-vous corriger votre réponse?CSS = """#notebook div.output_subarea { max-width:100%;"""
HTML('<style>{}</style>'.format(CSS))
. Ceci est très utile pour l'impression.Cela peut être fait en utilisant un IPython
ToggleButton
widget et un peu de JavaScript. Le code suivant doit être placé dans une cellule de code en haut du document:Cela crée le bouton suivant pour afficher / masquer le code du bloc-notes Jupyter, réglé par défaut à l'état «masquer»:
Lorsqu'il est défini sur l'état «show», vous pouvez alors voir le code du bloc-notes Jupyter:
En passant, alors qu'une grande partie de ce code doit être placée au début du notebook, l'emplacement du bouton bascule est facultatif. Personnellement, je préfère le garder au bas du document. Pour ce faire, déplacez simplement la
display(button)
ligne vers une cellule de code distincte en bas de la page:la source
Il existe une solution intéressante fournie ici qui fonctionne bien pour les blocs-notes exportés au format HTML. Le site Web renvoie même ici à cet article SO, mais je ne vois pas la solution de Chris ici! (Chris, où es-tu?)
C'est fondamentalement la même solution que la réponse acceptée de harshil, mais elle a l'avantage de cacher le code de bascule lui-même dans le HTML exporté. J'aime aussi que cette approche évite le besoin de la fonction HTML IPython.
Pour implémenter cette solution, ajoutez le code suivant à une cellule 'Raw NBConvert' en haut de votre notebook:
Ensuite, exportez simplement le notebook au format HTML. Il y aura un bouton bascule en haut du cahier pour afficher ou masquer le code.
Chris fournit également un exemple ici .
Je peux vérifier que cela fonctionne dans Jupyter 5.0.0
Mise à jour : Il est également pratique d'afficher / masquer les
div.prompt
éléments avec lesdiv.input
éléments. Cela supprime leIn [##]:
etOut: [##]
texte et réduit les marges sur la gauche.la source
$('div.output').next().hide('500');
pour masquer la prochaine sortie? J'ai essayé moi-même mais je n'arrive pas à faire fonctionner cela.Pour un meilleur affichage avec un document imprimé ou un rapport, nous devons également supprimer le bouton et la possibilité d'afficher ou de masquer certains blocs de code. Voici ce que j'utilise (copiez-collez simplement ceci dans votre première cellule):
Puis dans vos prochaines cellules:
et
la source
Cela rendra une sortie de notebook IPython. Cependant, vous noterez être en mesure de voir le code d'entrée. Vous pouvez copier un bloc-notes, puis ajouter ce code si nécessaire pour le partager avec quelqu'un qui n'a pas besoin d'afficher le code.
la source
from IPython.display import HTML HTML('''<script> $('div.input').show()''')
Convertir la cellule en Markdown et utiliser HTML5
<details>
balise comme dans l'exemple enjoyrexus
:https://gist.github.com/joyrexus/16041f2426450e73f5df9391f7f7ae5f
la source
Voici une autre solution proposée par p3trus :
Comme décrit par p3trus : "[Il] ajoute un bouton à la barre d'outils du notebook ipython pour masquer / afficher la cellule de code d'entrée. Pour l'utiliser, vous devez placer le fichier custom.js dans votre
.ipython_<profile name>/static/custom/
dossier, où est le profil ipython utilisé. "Mes propres commentaires: j'ai vérifié cette solution et elle fonctionne avec iPython 3.1.0.
la source
La solution acceptée fonctionne également dans julia Jupyter / IJulia avec les modifications suivantes:
notez en particulier:
display
fonction$
signe (sinon vu comme une variable)la source
Voici un bel article (le même que celui que @Ken a publié) sur la façon de peaufiner les blocs-notes Jpuyter (le nouvel IPython) pour les présenter. Il existe d'innombrables façons d'étendre Jupyter à l'aide de JS, HTML et CSS, y compris la possibilité de communiquer avec le noyau python du notebook à partir de javascript. Il existe des décorateurs magiques pour
%%HTML
et%%javascript
vous pouvez donc faire quelque chose comme ça dans une cellule seule:Je peux également garantir que les méthodes de Chris fonctionnent dans jupyter 4.XX
la source
Solution très simple en utilisant la console du navigateur. Vous copiez ceci dans la console de votre navigateur et appuyez sur Entrée:
Ensuite, vous basculez le code de la cellule en cliquant simplement sur le numéro de la cellule d'entrée.
la source
(Papier) Impression ou enregistrement au format HTML
Pour ceux d'entre vous qui souhaitent imprimer sur papier les résultats, les réponses ci-dessus ne semblent pas à elles seules donner une belle sortie finale. Cependant, prendre le code de @Max Masnick et ajouter ce qui suit permet de l'imprimer sur une page A4 complète.
La raison du retrait est que la section d'invite supprimée par Max Masnick signifie que tout se déplace vers la gauche en sortie. Cela n'a cependant rien fait pour la largeur maximale de la sortie qui était limitée à
max-width:100%-14ex;
. Cela change la largeur maximale de output_subarea enmax-width:100%;
.la source
Avec toutes les solutions ci-dessus, même si vous cachez le code, vous obtiendrez toujours le
[<matplotlib.lines.Line2D at 0x128514278>]
merde au-dessus de votre chiffre, ce que vous ne voulez probablement pas.Si vous voulez réellement vous débarrasser de l'entrée plutôt que de simplement la cacher, je pense que la solution la plus propre est de sauvegarder vos chiffres sur le disque dans des cellules cachées, puis d'inclure simplement les images dans les cellules Markdown en utilisant par exemple
![Caption](figure1.png)
.la source
_ = plt.plot()
pour ne pas l'avoir impression de[<>]
merdela source
la source