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

nom-mon-ir
quelle

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.

Matt
quelle
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

Jacob Stevenson
quelle
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;
Keflavich
quelle
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.

Taylor Somma
quelle
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.

Broccoli2000
quelle
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>"))
aless80
quelle
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>
Cireo
quelle
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.

Chris
quelle
-1

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

baz
quelle