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éé?

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.


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


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;

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.


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.


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>"))

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>

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).


-1

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.