Wie erhöhe ich die Zellenbreite des Jupyter / ipython-Notizbuchs in meinem Browser?

349

Ich möchte die Breite des ipython-Notebooks in meinem Browser erhöhen. Ich habe einen hochauflösenden Bildschirm und möchte die Zellenbreite / -größe erweitern, um diesen zusätzlichen Platz zu nutzen.

Vielen Dank!


bearbeiten: 5/2017

Ich benutze jetzt jupyterthemes: https://github.com/dunovank/jupyter-themes

und dieser Befehl:

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

Das setzt die Breite auf 100% mit einem schönen Thema.

vgoklani
quelle
1
Versuchen Sie np.set_printoptions (250)
vgoklani
2
Vielen Dank! np.set_printoptions(linewidth=110)funktioniert bei mir.
Timo
1
@vgoklani Sorry, aber 'np'? Woher kommt das?
Brandt
1
@Brandt import numpy als np
vgoklani
3
@vgoklani +1 für Jupyter Themen
Gursharan Singh

Antworten:

613

Wenn Sie Ihre Standardeinstellungen nicht ändern möchten und nur die Breite des aktuellen Notizbuchs ändern möchten, an dem Sie arbeiten, können Sie Folgendes in eine Zelle eingeben:

from IPython.core.display import display, HTML
display(HTML("<style>.container { width:100% !important; }</style>"))
jjinking
quelle
11
Nett. Dies scheint nur die Code- / Markdown-Zellen zu ändern. Gibt es eine Möglichkeit, auch die Ausgabezellen ausführen zu lassen?
Dreyco676
13
Diese Lösung hat bei mir funktioniert! Ich musste keine Bibliothek oder Paket installieren, um es zu verwenden.
Bill Ancalagon der Schwarze
1
Ich benutze Jupyter für Julia. Weißt du was ich in diesem Fall brauche?
Becko
68
Dies hat mein Leben verändert
YellowPillow
1
@ Becko nach Julia Diskurs funktioniert dies:display("text/html", "<style>.container { width:100% !important; }</style>")
Liso
209

Diese div.cellLösung funktionierte auf meinem IPython nicht wirklich, aber zum Glück schlug jemand eine funktionierende Lösung für neue IPythons vor:

Erstellen Sie eine Datei ~/.ipython/profile_default/static/custom/custom.css(iPython) oder ~/.jupyter/custom/custom.css(Jupyter) mit Inhalten

.container { width:100% !important; }

Starten Sie dann die iPython / Jupyter-Notebooks neu. Beachten Sie, dass dies alle Notebooks betrifft.

Gerenuk
quelle
5
Diese kleinen Informationsschnipsel sollten irgendwo veröffentlicht werden, nochmals vielen Dank!
Vgoklani
4
Dies war äußerst nützlich
ivrin
13
Das Starten des benutzerdefinierten IPython 4.1-Ordners wurde in geändert ~/.jupyter/custom/.
Romain
6
Ich musste Jupyter Notebook (4.1.0) neu starten, damit es funktionierte. Ich habe das obige CSS in~/.jupyter/custom/custom.css
Paul
6
100% sieht nicht sehr gut aus, ich habe es in 90% geändert
liang
69

Damit dies mit jupyter (Version 4.0.6) funktioniert, habe ich Folgendes erstellt ~/.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
quelle
Das funktioniert unter Linux! Aber wo muss ich es in Windows speichern?
Crusaderky
6
Versuchen Sie es auszuführen jupyter --config-dir, und erstellen Sie es custom\custom.cssan einer beliebigen Stelle, die der Befehl zurückgibt.
Jvd10
@ jvd10 das hat bei mir nicht funktioniert. Hat custom.cssaußer dem obigen Snippet noch einen anderen Code? Woher weiß Jupyter auch, wie man es benutzt?
mLstudent33
Zumindest unter Linux und OSX sucht Jupyter standardmäßig nach einem versteckten Verzeichnis, das .jupyterfür Konfigurationsdateien aufgerufen wird, einschließlich Anpassungen wie den oben genannten. Das Obige sollte der einzige Inhalt der Datei custom.css sein. Weitere Informationen finden Sie hier: jupyter.readthedocs.io/en/latest/projects/…
jvd10
24

Es ist Zeit, Jupyterlab zu verwenden

Schließlich wurde ein dringend benötigtes Upgrade für Notebooks durchgeführt. Standardmäßig wird die gesamte Breite Ihres Fensters wie bei jeder anderen vollwertigen nativen IDE verwendet.

Alles was du tun musst, ist:

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

Hier ist ein Screenshot von blog.Jupyter.org

Thamme Gowda
quelle
2
JupyterLab befindet sich noch in der Beta-Phase und weist einige Regressionen der regulären Notebooks auf (beabsichtigt). Eine bemerkenswerte Sache ist, JS standardmäßig zu verbieten und Erweiterungen für jede kleine JS-Visualisierung zu benötigen
Ciprian Tomoiagă
1
Und wie können Sie die Breite einer Jupyter Lab-Zelle ändern?
Multigoodverse
1
Ich habe eine Stunde lang gekämpft, damit das Jupiter-Labor funktioniert. Zunächst wurden keine Grafiken (Pyplot / Plotly) angezeigt. In den Dokumenten wird nicht erwähnt, dass Sie dafür Erweiterungen installieren müssen. Versucht, die Plotly-Erweiterung zu installieren. fand heraus, dass Sie dafür nodejs benötigen. Beide installiert, jetzt erhalte ich die Meldung "Vorlage kann nicht gefunden werden:" index.html ". An diesem Punkt gab ich auf, ich bleibe bei Jupyter Notebook.
Itamar Katz
15

Normalerweise ändere ich nach der Neuinstallation die CSS-Hauptdatei, in der alle visuellen Stile gespeichert sind. Ich benutze Miniconda, aber die Lage ist ähnlich wie bei anderenC:\Miniconda3\Lib\site-packages\notebook\static\style\style.min.css

Bei einigen Bildschirmen sind diese Auflösungen unterschiedlich und größer als 1. Um auf der sicheren Seite zu sein, ändere ich alles auf 98%. Wenn ich also die Verbindung zu meinen externen Bildschirmen auf meinem Laptop trenne, habe ich immer noch 98% Bildschirmbreite.

Ersetzen Sie dann einfach 1140px durch 98% der Bildschirmbreite.

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

Geben Sie hier die Bildbeschreibung ein

Nach der Bearbeitung

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

Geben Sie hier die Bildbeschreibung ein Speichern Sie Ihr Notebook und starten Sie es neu


Aktualisieren

Vor kurzem mussten Jupyter-Zellen in einer installierten Umgebung erweitert werden, was mich dazu veranlasste, hierher zurückzukehren und mich daran zu erinnern.

Wenn Sie dies in einer virtuellen Umgebung tun müssen, haben Sie jupyter installiert. Sie finden die CSS-Datei in diesem Unterverzeichnis

env/lib/python3.6/site-packages/notebook/static/style/stye.min.css
Gunay Anach
quelle
1
Das ist fantastisch! Es ist einfach und erreicht genau das, was benötigt wird.
Beliebige
@Gunay /notebookexistiert für mich nicht im Verzeichnis.
mLstudent33
Kennen Sie die Version Ihres Pythons (Python -V, wenn Sie Ihre Umgebung aktivieren) und wie haben Sie die virtuelle Umgebung erstellt? Haben Sie das venv-Modul unter Python / Conda verwendet?
Gunay Anach
12

Sie können das CSS eines Notizbuchs festlegen, indem Sie ein Stylesheet aus einer beliebigen Zelle aufrufen. Schauen Sie sich als Beispiel den Kurs 12 Schritte zum Navier Stokes an .

Insbesondere das Erstellen einer Datei mit

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

sollte Ihnen einen Ausgangspunkt geben. Es kann jedoch erforderlich sein, auch Anpassungen div.text_cell_rendervorzunehmen, z. B. um Markdown- und Codezellen zu behandeln.

Wenn diese Datei vorhanden ist, custom.cssfügen Sie eine Zelle hinzu, die Folgendes enthält:

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

Dadurch werden alle Stile angewendet und insbesondere die Zellenbreite geändert.

Ian
quelle
Dies funktioniert in der neuesten IPython-Version (Version> 2) nicht. Überprüfen Sie diese Antwort: stackoverflow.com/a/24207353/2108548
rominf
Oder wenn Sie es nur für das aktuelle Notizbuch in den letzten ipythons und jupyter ändern möchten, lesen Sie die Antwort von @ jjinking :)
nealmcb
8

(Ab 2018 würde ich empfehlen, JupyterHub / JupyterLab auszuprobieren. Es nutzt die gesamte Breite des Monitors. Wenn dies keine Option ist, verwenden Sie möglicherweise einen der Cloud-basierten Jupyter-as-a-Service-Anbieter. weiter lesen)

(Stylish wird beschuldigt, Benutzerdaten gestohlen zu haben. Ich habe stattdessen das Stylus-Plugin verwendet.)

Ich empfehle das Stylish Browser Plugin . Auf diese Weise können Sie CSS für alle Notizbücher überschreiben, ohne den Notizbüchern Code hinzuzufügen. Wir möchten die Konfiguration in .ipython / profile_default nicht ändern, da wir einen gemeinsam genutzten Jupyter-Server für das gesamte Team ausführen und die Breite eine Benutzerpräferenz ist.

Ich habe einen Stil speziell für vertikal ausgerichtete hochauflösende Bildschirme entwickelt, der die Zellen breiter macht und unten etwas Leerraum hinzufügt, sodass Sie die letzte Zelle in der Mitte des Bildschirms positionieren können. https://userstyles.org/styles/131230/jupyter-wide Sie können mein CSS natürlich nach Ihren Wünschen ändern, wenn Sie ein anderes Layout haben oder am Ende keinen zusätzlichen Leerraum möchten.

Last but not least ist Stylish ein großartiges Tool in Ihrem Toolset, da Sie andere Websites / Tools ganz einfach nach Ihren Wünschen anpassen können (z. B. Jira, Podio, Slack usw.).

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

.end_space {
  height: 800px;
}
volodymyr
quelle
Ja, Stylish ist großartig! Können Sie bitte den Code hinzufügen, der für den zusätzlichen Platz unten benötigt wird? Ich habe immer eine leere Zelle mit vielen Leerzeilen, damit die echte letzte Zelle zentriert ist -_-.
Ciprian Tomoiagă
2
Stylish wurde gestern wegen Diebstahls des Browserverlaufs der Benutzer entfernt: gadgets.ndtv.com/internet/news/…
stason
6

Für Chrome-Nutzer empfehle ich Stylebot , mit dem Sie jedes CSS auf jeder Seite überschreiben und andere benutzerdefinierte CSS-Freigaben suchen und installieren können. Für unseren Zweck benötigen wir jedoch kein fortgeschrittenes Thema. Öffnen Sie den Stylebot und wechseln Sie zu Edit CSS. Jupyter erfasst einige Tastenanschläge, sodass Sie den folgenden Code nicht eingeben können. Kopieren und einfügen oder nur Ihren Editor:

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

Ändern Sie die Breite nach Ihren Wünschen. Ich finde, 90% sehen besser aus als 100%. Aber es liegt ganz bei Ihnen.

bizi
quelle
Toller Vorschlag für ein Jupiter-Notebook, macht aber noch viel mehr!
Robino
@bizi, klicke ich in eine Codezelle und klicke dann mit der rechten Maustaste, wähle Stylebot aus, bearbeite CSS und kopiere und füge ein, was du hast? Wenn ja, hat es bei mir nicht funktioniert. Ich habe gerade dickere Ränder auf beiden Seiten.
mLstudent33
4

Dies ist der Code, den ich letztendlich verwendet habe. Es dehnt Eingabe- und Ausgabezellen nach links und rechts aus. Beachten Sie, dass die Anzeige der Eingangs- / Ausgangsnummer weg ist:

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
quelle
cool! Ich würde nur die letzte Zeile ausschließen, da dadurch die Ausführungsinformationen der Zellen verschwinden (linker Teil der Zellen, der die Ausführungsreihenfolge und ein * anzeigt, wenn die Ausführung noch nicht abgeschlossen ist)
onofricamila
2

Ich habe einige Änderungen an der Lösung von @ jvd10 vorgenommen. Das '! Wichtig' scheint zu stark zu sein, als dass sich der Container nicht gut anpasst, wenn die Inhaltsverzeichnis-Seitenleiste angezeigt wird. Ich habe es entfernt und 'min-width' hinzugefügt, um die minimale Breite zu begrenzen.

Hier ist meine .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
quelle
0

Ich habe alles versucht und nichts hat bei mir funktioniert. Am Ende habe ich meinen Datenrahmen wie folgt als HTML angezeigt

from IPython.display import HTML    
HTML (pd.to_html())
Smishra
quelle
-1

Für Firefox / Chrome-Benutzer ist die Verwendung eines benutzerdefinierten TamperMonkey- Skripts eine gute Möglichkeit, eine Breite von 100% zu erreichen .

Die Vorteile sind

  1. Konfigurieren Sie dies einmal in Ihrem Browser, ohne die Serverkonfiguration ändern zu müssen.
  2. funktioniert mit mehreren Jupyter-Servern.
  3. TamperMonkey ist vertrauenswürdig, gepflegt und stabil.
  4. Viele zusätzliche Anpassungen sind über Javascript möglich.

Dieses Skript funktioniert für mich https://gist.githubusercontent.com/mrk-andreev/2a9c2538fad0b687c27e192d5948834f/raw/6aa1148573dc20a22fca126e56e3b03f4abf281b/jpn_tmonkey.js

Maksim
quelle