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?

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.


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


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;

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.


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


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

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>

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


-1

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.