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.