redimensionner la fenêtre de sortie du notebook ipython

111

Par défaut, la sortie du notebook ipython est limitée à une petite sous-fenêtre en bas. Cela nous oblige à utiliser une barre de défilement séparée fournie avec la fenêtre de sortie, lorsque la sortie est grande.

Une option de configuration pour qu'elle ne soit pas limitée en taille, mais qu'elle soit aussi élevée que la sortie réelle? Ou possibilité de le redimensionner une fois qu'il est créé?

nom-mon-ir
la source

Réponses:

9

Voir l'extension jupyter autoscroll (partie de jupyter_contrib_nbextensions) , qui vous permet de sélectionner le moment où la sortie commence à défiler dans un menu déroulant (vous pouvez le configurer pour ne jamais défiler). Cependant, l'API utilisée n'est pas officiellement prise en charge, cela peut donc être interrompu à tout moment.

Mat
la source
Merci Matt! Comment l'utiliser?
nom-mon-ir
1
clone repo au bon endroit dans votre profil ipython. (cf readme) copiez custom.example.js dans custom.js et décommentez require ('custom / autoscroll.js') dedans. Redémarrez IPython.
Matt
236

Vous pouvez basculer la fenêtre de défilement dans le menu principal du notebook

Cellule -> Sorties de courant -> Basculer le défilement

Jacob Stevenson
la source
23
Ou (Cell -> All Output -> Toggle Scrolling)
aquirdturtle
un moyen de le faire sur une base par cellule? Par exemple, une cellule avec beaucoup de contenu json souhaite faire défiler, mais une cellule avec une sortie d'image ne souhaite pas défiler.
marron.2179
1
Cool, même s'il défile, un simple clic sur le côté gauche de la sortie l'agrandira et le rendra non défilant. :-)
user1953366
1
Cela devrait être la réponse acceptée. C'est beaucoup plus actuel que la réponse acceptée, et cela fonctionne comme un charme.
Sean McCarthy
45

Addendum # 2: Ce commentaire: https://github.com/ipython/ipython/issues/2172#issuecomment-53708976 indique comment augmenter la taille maximale des cellules de sortie. Exécutez le code suivant dans le bloc-notes:

%%javascript
IPython.OutputArea.auto_scroll_threshold = 9999;
Keflavich
la source
Cela ne semble pas fonctionner. Dans la console je reçois: accessing OutputArea is deprecated. Use require("notebook/js/outputarea").OutputArea. Mettre cela dans la console montre que c'est une fonction.
broccoli2000
Cela n'a pas fonctionné pour moi, probablement parce que ma sortie est générée par Javascript.
osa
2
ne fonctionne pas. la sortie après l'exécution d'une cellule est toujours dans une zone de défilement. Dans mon cas, tout à coup, ipython notebook bascule vers des volets déroulants pour certaines sorties, alors qu'ils avaient l'habitude d'être "normaux" auparavant. Very enigmatic ...
user989762
22

Je viens de placer mon curseur dans la case grise à côté de la sortie et j'ai cliqué, puis toute la sortie a été affichée.

Taylor Somma
la source
Wow, c'était une solution si simple. Pourquoi l'une des autres «solutions» affichées était-elle nécessaire?
Rafael_Espericueta le
15

Cela a fonctionné pour moi dans Chrome. Exécutez-le dans une cellule séparée. Choisissez la hauteur maximale que vous souhaitez afficher sans faire défiler.

%%html
<style>
.output_wrapper, .output {
    height:auto !important;
    max-height:1000px;  /* your desired max-height here */
}
.output_scroll {
    box-shadow:none !important;
    webkit-box-shadow:none !important;
}
</style>

Vous obtiendrez toujours des barres de défilement si le contenu dépasse la hauteur maximale. Il n'y aura pas de boîte d'ombre, cependant. Augmentez encore plus la hauteur maximale si vous ne voulez vraiment pas du tout de défilement.

brocoli2000
la source
génial. Ce morceau de code a fait l'affaire. Étrange, ce n'est pas un paramètre documenté du notebook ipython / jupyter.
user989762
Je préfère cela à l'ajout d'une extension. J'ai également utilisé cette méthode pour formater le reste de ma sortie. Merci, @ broccoli2000!
hyperGeoMetric
Je ne savais pas que vous pouviez faire cela ... un peu piraté, mais l'environnement Jupyter en général l'est aussi, semble-t-il. Je vous remercie!
Ezekiel Victor
11

Pour redimensionner la hauteur de la sortie déroulante, je fais ce qui suit (vous pouvez changer 44em):

from IPython.core.display import display, HTML
display(HTML("<style>div.output_scroll { height: 44em; }</style>"))
aless80
la source
1
C'est tellement génial et fonctionne toujours avec Jupyter 1.0+
rjurney
2

Pour un iplot plot.ly, j'ai dû ajouter ce qui suit pour voir tout changement (cela a changé toute la sortie)

%%html
<style>
.python-iframe > iframe {
  height:1000px !important;
}
</style>
Cireo
la source
0

J'ai essayé toutes les options ci-dessus et aucune d'elles n'a fonctionné. C'est ainsi que je me suis débarrassé de la cellule de défilement. Faites un clic droit sur la cellule, et cliquez sur "désactiver le défilement pour les sorties" Je sais que cela ne redimensionne pas la cellule de défilement, mais cela rend mon code plus lisible car les cellules de défilement sont très petites (pour moi du moins).

Chris
la source
-1

Dans JupyterLab, vous pouvez cliquer avec le bouton droit de la souris et choisir: Créer une nouvelle vue pour la sortie .

baz
la source