zmień rozmiar okna wyjściowego notatnika ipython

111

Domyślnie wyjście notebooka ipython jest ograniczone do małego okna podrzędnego na dole. To zmusza nas do używania oddzielnego paska przewijania, który pojawia się w oknie wyjściowym, gdy wynik jest duży.

Czy jest jakaś opcja konfiguracyjna, która nie ogranicza rozmiaru, a zamiast tego działa tak wysoko, jak rzeczywiste dane wyjściowe? Lub opcję zmiany rozmiaru po utworzeniu?

nom-mon-ir
źródło

Odpowiedzi:

9

Zobacz rozszerzenie autoscroll jupyter (część jupyter_contrib_nbextensions) , które pozwala wybrać, kiedy wyjście ma się przewijać w menu rozwijanym (możesz ustawić, aby nigdy nie było przewijane). Używany interfejs API nie jest jednak oficjalnie obsługiwany, więc może to w dowolnym momencie ulec awarii.

Matt
źródło
Dzięki Matt! Jak tego używam?
nom-mon-ir
1
klonuj repozytorium we właściwym miejscu w swoim profilu ipython. (cf readme) skopiuj custom.example.js do custom.js i uncomment require ('custom / autoscroll.js') w nim. Uruchom ponownie IPython.
Matt,
236

Możesz przełączać okno przewijania w menu głównym notatnika

Komórka -> Wyjścia prądowe -> Przełącz przewijanie

Jacob Stevenson
źródło
23
Lub (Cell -> All Output -> Toggle Scrolling)
aquirdturtle
jakikolwiek sposób, aby to zrobić na podstawie poszczególnych komórek? Na przykład komórka z dużą ilością treści json chce przewijać, ale komórka z wyjściem obrazu wolałaby nie przewijać.
brązowy. 2179
1
Fajnie, także jeśli przewija się, wystarczy kliknąć lewą stronę wyjścia, aby go rozwinąć i uniemożliwić przewijanie. :-)
user1953366
1
To powinna być akceptowana odpowiedź. Jest dużo bardziej aktualna niż zaakceptowana odpowiedź i działa jak urok.
Sean McCarthy
45

Dodatek nr 2: Ten komentarz: https://github.com/ipython/ipython/issues/2172#issuecomment-53708976 wskazuje, jak można zwiększyć maksymalny rozmiar komórek wyjściowych. Uruchom następujący kod w notesie:

%%javascript
IPython.OutputArea.auto_scroll_threshold = 9999;
keflavich
źródło
Nie wydaje się działać. W konsoli otrzymuję: accessing OutputArea is deprecated. Use require("notebook/js/outputarea").OutputArea. Umieszczenie tego w konsoli pokazuje, że jest to funkcja.
broccoli2000,
Nie zadziałało dla mnie, prawdopodobnie dlatego, że moje dane wyjściowe są generowane przez JavaScript.
osa
2
nie działa. dane wyjściowe po wykonaniu komórki nadal znajdują się w przewijalnym obszarze. W moim przypadku notebook ipython nagle przełącza się na przewijane okienka dla niektórych wyjść, podczas gdy wcześniej były one „normalne”. Bardzo enigmatyczny ...
user989762
22

Po prostu umieściłem kursor w szarym polu obok wyjścia i kliknąłem, a następnie wszystkie dane wyjściowe zostały wyświetlone.

Taylor Somma
źródło
Wow, to było takie proste rozwiązanie. Dlaczego potrzebne były inne opublikowane „rozwiązania”?
Rafael_Espericueta
15

To działało dla mnie w Chrome. Uruchom go w osobnej komórce. Wybierz maksymalną wysokość, jaką chcesz wyświetlić bez przewijania.

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

Nadal będziesz otrzymywać paski przewijania, jeśli zawartość przekracza maksymalną wysokość. Nie będzie jednak pudełka cienia. Po prostu zwiększ maksymalną wysokość jeszcze bardziej, jeśli naprawdę nie chcesz w ogóle przewijać.

brokuły2000
źródło
świetny. Ten fragment kodu załatwił sprawę. Dziwne, że to nie jest udokumentowane ustawienie notatnika ipython / jupyter.
user989762
Wolę to od dodania rozszerzenia. Użyłem tej metody również do sformatowania reszty mojego wyniku. Dzięki, @ broccoli2000!
hyperGeoMetric
Nie wiedziałem, że możesz to zrobić ... trochę hakerskie, ale wydaje się, że tak samo jest ze środowiskiem Jupyter. Dziękuję Ci!
Ezekiel Victor
11

Aby zmienić wysokość przewijalnego wyjścia, wykonuję następujące czynności (możesz zmienić 44em):

from IPython.core.display import display, HTML
display(HTML("<style>div.output_scroll { height: 44em; }</style>"))
aless80
źródło
1
To jest TAKIE WSPANIAŁE i nadal działa z Jupyter 1.0+
rjurney
2

W przypadku plot.ly iplot musiałem dodać następujące elementy, aby zobaczyć wszelkie zmiany (zmieniło to wszystkie dane wyjściowe)

%%html
<style>
.python-iframe > iframe {
  height:1000px !important;
}
</style>
Cireo
źródło
0

Wypróbowałem wszystkie powyższe opcje i żadna z nich nie działała. W ten sposób pozbyłem się przewijanej komórki. Kliknij komórkę prawym przyciskiem myszy i kliknij „wyłącz przewijanie dla wyjść”. Wiem, że to nie zmienia rozmiaru przewijanej komórki, ale sprawia, że ​​mój kod jest bardziej czytelny, ponieważ przewijane komórki są bardzo małe (przynajmniej dla mnie).

Chris
źródło
-1

W JupyterLab możesz kliknąć prawym przyciskiem myszy i wybrać: Utwórz nowy widok do wyjścia .

baz
źródło