Jak zwiększyć szerokość komórki notatnika Jupyter / ipython w przeglądarce?

350

Chciałbym zwiększyć szerokość notatnika ipython w mojej przeglądarce. Mam ekran o wysokiej rozdzielczości i chciałbym powiększyć szerokość / rozmiar komórki, aby wykorzystać tę dodatkową przestrzeń.

Dzięki!


edycja: 5/2017

Teraz używam jupyterthemes: https://github.com/dunovank/jupyter-themes

i to polecenie:

jt -t oceans16 -f roboto -fs 12 -cellw 100%

która ustawia szerokość na 100% z ładnym motywem.

vgoklani
źródło
1
Spróbuj np.set_printoptions (250)
vgoklani,
2
Dzięki! np.set_printoptions(linewidth=110)pracuje dla mnie.
Timo,
1
@vgoklani Przepraszamy, ale „np”? Skąd to pochodzi?
Brandt,
1
@Brandt import numpy as np
vgoklani
3
@vgoklani +1 dla Jupyter Themes
Gursharan Singh

Odpowiedzi:

615

Jeśli nie chcesz zmieniać ustawień domyślnych, a chcesz jedynie zmienić szerokość bieżącego notesu, nad którym pracujesz, możesz wpisać następujące dane w komórce:

from IPython.core.display import display, HTML
display(HTML("<style>.container { width:100% !important; }</style>"))
jjinking
źródło
11
Miły. Wygląda na to, że zmienia tylko komórki kodu / przeceny. Czy istnieje sposób, aby to zrobić, aby komórki wyjściowe?
dreyco676,
13
To rozwiązanie działało dla mnie! Nie musiałem instalować żadnych bibliotek ani pakietów, aby z nich korzystać.
Bill Ancalagon czarny
1
Korzystam z Jupyter dla Julii. Czy wiesz, czego potrzebuję w tym przypadku?
becko
68
To zmieniło moje życie
YellowPillow
1
@becko według dyskursu Julii to działa:display("text/html", "<style>.container { width:100% !important; }</style>")
Liso
209

To div.cellrozwiązanie tak naprawdę nie działało na moim IPython, jednak na szczęście ktoś zaproponował działające rozwiązanie dla nowych IPythonów:

Utwórz plik ~/.ipython/profile_default/static/custom/custom.css(iPython) lub ~/.jupyter/custom/custom.css(Jupyter) z zawartością

.container { width:100% !important; }

Następnie uruchom ponownie notebooki iPython / Jupyter. Pamiętaj, że wpłynie to na wszystkie notebooki.

Gerenuk
źródło
5
Te małe fragmenty informacji należy opublikować w jakimś miejscu, jeszcze raz dziękuję!
vgoklani
4
Było to niezwykle przydatne
ivrin,
13
Uruchamianie niestandardowej lokalizacji folderu IPython 4.1 zmieniło się na ~/.jupyter/custom/.
Romain
6
Musiałem zrestartować notatnik Jupyter (4.1.0), aby działał. Wstawiłem powyższe css w~/.jupyter/custom/custom.css
Paul
6
100% nie wygląda ładnie, zmieniłem to na 90%
liang
69

Aby to działało z programem jupyter (wersja 4.0.6), utworzyłem ~/.jupyter/custom/custom.css:

/* Make the notebook cells take almost all available width */
.container {
    width: 99% !important;
}   

/* Prevent the edit cell highlight box from getting clipped;
 * important so that it also works when cell is in edit mode*/
div.cell.selected {
    border-left-width: 1px !important;
}
jvd10
źródło
Działa to w systemie Linux! Ale gdzie muszę go zapisać w systemie Windows?
crusaderky
6
Spróbuj uruchomić jupyter --config-dir, a następnie utwórz custom\custom.cssw dowolnej lokalizacji zwracanej przez polecenie.
jvd10
@ jvd10 to nie działało dla mnie. Czy custom.cssoprócz powyższego fragmentu kodu jest jakiś inny kod? W jaki sposób Jupyter wie, jak go używać?
mLstudent33
Przynajmniej w Linuksie i Osxie, domyślnie jupyter szuka ukrytego katalogu wywoływanego .jupyterdo plików konfiguracyjnych, w tym dostosowań takich jak powyżej. Powyższe powinno być jedyną zawartością pliku custom.css. Zobacz tutaj, aby uzyskać więcej informacji: jupyter.readthedocs.io/en/latest/projects/…
jvd10
24

Czas użyć jupyterlab

W końcu do notebooków przyszła bardzo potrzebna aktualizacja. Domyślnie wykorzystuje pełną szerokość okna, jak każde inne pełnoprawne IDE.

Wszystko co musisz zrobić to:

pip install jupyterlab
# if you use conda
conda install -c conda-forge jupyterlab
# to run 
jupyter lab    # instead of jupyter notebook

Oto zrzut ekranu z blog.Jupyter.org

Thamme Gowda
źródło
2
JupyterLab jest wciąż w fazie beta i ma pewne regresje ze zwykłych notebooków (zgodnie z projektem). Warto zauważyć, że domyślnie zabrania się JS i wymaga rozszerzeń dla każdej małej wizualizacji JS
Ciprian Tomoiagă
1
Jak możesz zmienić szerokość komórki Jupyter Lab?
multigoodverse
1
Przez godzinę walczyłem, żeby laboratorium jupyterów działało. na początku nie pokazywała się grafika (pyplot / plotly). Dokumenty nie wspominają, że musisz w tym celu zainstalować rozszerzenia. Próbowałem zainstalować rozszerzenie działki. okazało się, że potrzebujesz do tego nodejs. zainstalowałem oba, teraz pojawia się komunikat „Nie można znaleźć szablonu:„ index.html ””. W tym momencie się poddałem, pozostaję przy notatniku jupyter.
Itamar Katz
15

Zwykle po nowej instalacji robię modyfikację głównego pliku css, w którym przechowywane są wszystkie style wizualne. Używam Minicondy, ale lokalizacja jest podobna do innychC:\Miniconda3\Lib\site-packages\notebook\static\style\style.min.css

W przypadku niektórych ekranów te rozdzielczości są różne i są większe niż 1. Aby być bezpiecznym, zmieniam wszystko na 98%, więc jeśli odłączę się od zewnętrznych ekranów laptopa, nadal mam szerokość ekranu 98%.

Następnie wystarczy wymienić 1140px na 98% szerokości ekranu.

@media (min-width: 1200px) {
  .container {
    width: 1140px;
  }
}

wprowadź opis zdjęcia tutaj

Po edycji

@media (min-width: 1200px) {
  .container {
    width: 98%;
  }
}

wprowadź opis zdjęcia tutaj Zapisz i uruchom ponownie komputer


Aktualizacja

Niedawno musiałem rozszerzyć komórki Jupyter w środowisku, w którym jest zainstalowany, co skłoniło mnie do powrotu tutaj i przypomnienia sobie.

Jeśli musisz to zrobić w wirtualnej env, zainstalowałeś jupyter. Plik css można znaleźć w tym podkatalogu

env/lib/python3.6/site-packages/notebook/static/style/stye.min.css
Gunay Anach
źródło
1
To jest niesamowite! To proste i spełnia dokładnie to, co jest potrzebne.
arbitrarystringofletters
@Gunay /notebooknie istnieje dla mnie w katalogu.
mLstudent33
Czy znasz wersję swojego pytona (python -V podczas aktywacji środowiska) i jak stworzyłeś wirtualną env? Czy używałeś modułu venv na Python / Conda?
Gunay Anach
12

Możesz ustawić CSS notatnika, wywołując arkusz stylów z dowolnej komórki. Jako przykład przyjrzyj się kursowi 12 kroków do Navier Stokes .

W szczególności tworzenie pliku zawierającego

<style>
    div.cell{
        width:100%;
        margin-left:1%;
        margin-right:auto;
    }
</style>

powinien dać ci punkt wyjścia. Może być jednak konieczne dostosowanie np. W div.text_cell_rendercelu radzenia sobie z przeceną, a także z komórkami kodu.

Jeśli ten plik jest custom.cssnastępnie dodaj komórkę zawierającą:

from IPython.core.display import HTML
def css_styling():
    styles = open("custom.css", "r").read()
    return HTML(styles)
css_styling()

Spowoduje to zastosowanie wszystkich stylów, a w szczególności zmianę szerokości komórki.

Ian
źródło
To nie działa w najnowszym IPython (wersja> 2). Sprawdź tę odpowiedź: stackoverflow.com/a/24207353/2108548
rominf
Lub jeśli chcesz tylko zmienić go na bieżący notebook w najnowszych ipythons i jupyter, zobacz odpowiedź @ jjinking :)
nealmcb
8

(Od 2018 r. Radziłbym wypróbować JupyterHub / JupyterLab. Używa pełnej szerokości monitora. Jeśli nie jest to opcja, być może dlatego, że używasz jednego z dostawców Jupyter jako usługi chmurowej, Czytaj dalej)

(Stylish jest oskarżany o kradzież danych użytkownika, zamiast tego zacząłem używać wtyczki Stylus)

Polecam korzystanie ze stylowej wtyczki do przeglądarki . W ten sposób możesz zastąpić css dla wszystkich notesów, bez dodawania żadnego kodu do notesów. Nie lubimy zmieniać konfiguracji w .ipython / profile_default, ponieważ prowadzimy wspólny serwer Jupyter dla całego zespołu, a szerokość jest preferencją użytkownika.

Stworzyłem styl specjalnie dla zorientowanych pionowo ekranów o wysokiej rozdzielczości, który poszerza komórki i dodaje trochę pustej przestrzeni na dole, dzięki czemu możesz ustawić ostatnią komórkę na środku ekranu. https://userstyles.org/styles/131230/jupyter-wide Możesz oczywiście zmodyfikować mój css do swoich upodobań, jeśli masz inny układ lub na koniec nie chcesz dodatkowej pustej przestrzeni.

Na koniec, Stylish to świetne narzędzie, które możesz mieć w swoim zestawie narzędzi, ponieważ możesz łatwo dostosować inne strony / narzędzia do swoich upodobań (np. Jira, Podio, Slack itp.)

@media (min-width: 1140px) {
  .container {
    width: 1130px;
  }
}

.end_space {
  height: 800px;
}
Włodzimierz
źródło
tak, stylowy jest świetny! Czy możesz dodać kod potrzebny na dodatkowe miejsce na dole? Zawsze mam pustą komórkę z dużą ilością pustych linii, aby prawdziwa ostatnia komórka była wyśrodkowana -_-.
Ciprian Tomoiagă
2
Stylowy został wczoraj usunięty za kradzież historii przeglądania użytkowników: gadgets.ndtv.com/internet/news/…
stason
6

Użytkownikom Chrome polecam Stylebot , który pozwoli ci zastąpić dowolny CSS na dowolnej stronie, a także przeszukać i zainstalować inny niestandardowy CSS. Jednak do naszych celów nie potrzebujemy żadnego zaawansowanego motywu. Otwórz Stylebota, zmień na Edit CSS. Jupyter przechwytuje niektóre naciśnięcia klawiszy, więc nie będziesz mógł wpisać kodu poniżej. Wystarczy skopiować i wkleić lub tylko edytor:

#notebook-container.container {
    width: 90%;
}

Zmień szerokość, jak chcesz, uważam, że 90% wygląda ładniej niż 100%. Ale to zależy wyłącznie od twojego oka.

bizi
źródło
Niesamowita propozycja dla notebooka jupyter, ale robi o wiele więcej!
Robino,
@bizi, czy klikam wewnątrz komórki kodu, a następnie klikam prawym przyciskiem myszy, wybieram Stylebota, edytuję CSS oraz kopiuję i wklejam to, co masz? Jeśli tak, to nie działało to dla mnie. Właśnie zyskałem większe marginesy po obu stronach.
mLstudent33
4

To jest kod, którego używałem. Rozciąga komórki wejściowe i wyjściowe po lewej i prawej stronie. Zauważ, że wskazanie numeru wejścia / wyjścia zniknie:

from IPython.core.display import display, HTML
display(HTML("<style>.container { width:100% !important; }</style>"))
display(HTML("<style>.output_result { max-width:100% !important; }</style>"))
display(HTML("<style>.prompt { display:none !important; }</style>"))
AaronDT
źródło
fajne! Wykluczę tylko ostatni wiersz, ponieważ powoduje to, że informacje o wykonaniu komórek znikają (komórki opuściły część, która pokazuje kolejność wykonywania i *, gdy wykonanie nie jest jeszcze zakończone)
onofricamila
2

Dokonałem modyfikacji rozwiązania @ jvd10. „! Ważne” wydaje się zbyt silne, aby pojemnik nie dostosowywał się dobrze, gdy wyświetlany jest pasek boczny spisu treści. Usunąłem go i dodałem „minimalną szerokość”, aby ograniczyć minimalną szerokość.

Oto mój .juyputer / custom / custom.css:

/* Make the notebook cells take almost all available width and limit minimal width to 1110px */
.container {
    width: 99%;
    min-width: 1110px;
}   

/* Prevent the edit cell highlight box from getting clipped;
 * important so that it also works when cell is in edit mode*/
div.cell.selected {
    border-left-width: 1px;
}
Mongmong
źródło
0

Próbowałem wszystkiego i nic nie działało, skończyło się na wyświetleniu mojej ramki danych jako HTML w następujący sposób

from IPython.display import HTML    
HTML (pd.to_html())
smishra
źródło
-1

Dla użytkowników przeglądarki Firefox / Chrome dobrym sposobem na osiągnięcie 100% szerokości jest użycie niestandardowego skryptu TamperMonkey .

Korzyści są

  1. skonfiguruj to raz w przeglądarce, nie musisz modyfikować konfiguracji serwera.
  2. współpracuje z wieloma serwerami jupyter.
  3. TamperMonkey jest zaufany, utrzymywany i stabilny.
  4. Wiele dodatkowych dostosowań jest możliwych za pomocą javascript.

Ten skrypt działa dla mnie https://gist.githubusercontent.com/mrk-andreev/2a9c2538fad0b687c27e192d5948834f/raw/6aa1148573dc20a22fca126e56e3b03f4abf281b/jpn_tmonkey.js

Maksim
źródło