Ändern Sie die Größe des ipython Notebook-Ausgabefensters


109

Standardmäßig ist die Ausgabe des ipython-Notebooks auf ein kleines Unterfenster unten beschränkt. Dies zwingt uns dazu, eine separate Bildlaufleiste zu verwenden, die mit dem Ausgabefenster geliefert wird, wenn die Ausgabe groß ist.

Gibt es eine Konfigurationsoption, um die Größe nicht zu beschränken, sondern so hoch wie die tatsächliche Ausgabe zu sein? Oder die Option, die Größe zu ändern, sobald es erstellt wurde?

Antworten:


9

Weitere Informationen finden Sie in der jupyter-Autoscroll-Erweiterung (Teil von jupyter_contrib_nbextensions) , mit der Sie auswählen können, wann die Ausgabe in einem Dropdown-Menü mit dem Scrollen beginnt (Sie können festlegen, dass niemals gescrollt wird). Die verwendete API wird jedoch nicht offiziell unterstützt, sodass diese jederzeit unterbrochen werden kann.


Danke Matt! Wie benutze ich es?
Nom-Mon-Ir

1
Klonen Sie Repo an der richtigen Stelle in Ihrem Ipython-Profil. (vgl. Readme) Kopieren Sie custom.example.js nach custom.js und kommentieren Sie es aus ('custom / autoscroll.js'). Starten Sie IPython neu.
Matt

234

Sie können das Bildlauffenster im Hauptmenü des Notebooks umschalten

Zelle -> Aktuelle Ausgänge -> Bildlauf umschalten


22
Oder (Zelle -> Alle
Ausgaben

Gibt es eine Möglichkeit, dies pro Zelle zu tun? Beispielsweise möchten Zellen mit viel JSON-Inhalt scrollen, aber Zellen mit Bildausgabe möchten nicht scrollen.
braun.2179

1
Cool, auch wenn es gescrollt wird. Wenn Sie nur auf die linke Seite der Ausgabe klicken, wird sie erweitert und nicht gescrollt. :-)
user1953366

1
Dies sollte die akzeptierte Antwort sein. Es ist viel aktueller als die akzeptierte Antwort und funktioniert wie ein Zauber.
Sean McCarthy

45

Nachtrag Nr. 2: Dieser Kommentar: https://github.com/ipython/ipython/issues/2172#issuecomment-53708976 gibt an, wie Sie die maximale Größe der Ausgabezellen erhöhen können. Führen Sie den folgenden Code im Notizbuch aus:

%%javascript
IPython.OutputArea.auto_scroll_threshold = 9999;

Scheint nicht zu funktionieren. In der Konsole bekomme ich : accessing OutputArea is deprecated. Use require("notebook/js/outputarea").OutputArea. Wenn Sie das in die Konsole stellen, wird angezeigt, dass es sich um eine Funktion handelt.
Broccoli2000

Hat bei mir nicht funktioniert, möglicherweise weil meine Ausgabe von Javascript generiert wurde.
osa

2
funktioniert nicht Die Ausgabe nach dem Ausführen einer Zelle befindet sich immer noch in einem scrollbaren Bereich. In meinem Fall wechselt das ipython-Notebook plötzlich für bestimmte Ausgaben zu scrollbaren Fenstern, während diese zuvor "normal" waren. Sehr rätselhaft ...
user989762

20

Ich habe gerade meinen Cursor in das graue Feld neben der Ausgabe gesetzt und geklickt, und dann wurde die gesamte Ausgabe angezeigt.


Wow, das war so eine einfache Lösung. Warum wurden andere "Lösungen" benötigt?
Rafael_Espericueta

15

Das hat bei mir in Chrome funktioniert. Führen Sie es in einer separaten Zelle aus. Wählen Sie die maximale Höhe, die Sie anzeigen möchten, ohne zu scrollen.

%%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>

Sie erhalten weiterhin Bildlaufleisten, wenn der Inhalt die maximale Höhe überschreitet. Es wird jedoch keine Schattenbox geben. Erhöhen Sie einfach die maximale Höhe noch mehr, wenn Sie wirklich überhaupt nicht scrollen möchten.


großartig. Dieser Code hat es geschafft. Seltsamerweise ist dies keine dokumentierte Einstellung von ipython / jupyter notebook.
user989762

Ich ziehe dies dem Hinzufügen einer Erweiterung vor. Ich habe diese Methode auch verwendet, um den Rest meiner Ausgabe zu formatieren. Danke, @ broccoli2000!
HyperGeoMetric

Ich wusste nicht, dass du das schaffen kannst ... ein bisschen hackig, aber so scheint es auch mit der Jupyter-Umgebung im Allgemeinen. Danke dir!
Hesekiel Victor

10

Um die Höhe der scrollbaren Ausgabe zu ändern, gehe ich wie folgt vor (Sie können 44em ändern):

from IPython.core.display import display, HTML
display(HTML("<style>div.output_scroll { height: 44em; }</style>"))

1
Dies ist so toll und funktioniert immer noch mit Jupyter 1.0+
rjurney

2

Für ein plot.ly iplot musste ich Folgendes hinzufügen, um Änderungen zu sehen (es hat alle Ausgaben geändert)

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

0

Ich habe alle oben genannten Optionen ausprobiert und keine davon hat funktioniert. So habe ich die Bildlaufzelle losgeworden. Klicken Sie mit der rechten Maustaste auf die Zelle und klicken Sie auf "Bildlauf für Ausgaben deaktivieren". Ich weiß, dass dies die Größe der Bildlaufzelle nicht ändert, aber meinen Code besser lesbar macht, da die Bildlaufzellen (zumindest für mich) sehr klein sind.


-1

In JupyterLab können Sie mit der rechten Maustaste klicken und Folgendes auswählen: Neue Ansicht für die Ausgabe erstellen .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.