Come posso aumentare la larghezza della cella del notebook Jupyter / ipython nel mio browser?


350

Vorrei aumentare la larghezza del notebook ipython nel mio browser. Ho uno schermo ad alta risoluzione e vorrei espandere la larghezza / dimensione della cella per sfruttare questo spazio extra.

Grazie!


modifica: 5/2017

Ora uso jupyterthemes: https://github.com/dunovank/jupyter-themes

e questo comando:

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

che imposta la larghezza al 100% con un bel tema.


1
Prova np.set_printoptions (250)
vgoklani,

2
Grazie! np.set_printoptions(linewidth=110)per me va bene.
Timo,

1
@vgoklani Siamo spiacenti, ma 'np'? Da dove viene?
Brandt,

1
@Brandt import numpy as np
vgoklani

3
@vgoklani +1 per i temi di Giove
Gursharan Singh,

Risposte:


615

Se non si desidera modificare le impostazioni predefinite e si desidera modificare solo la larghezza del notebook corrente su cui si sta lavorando, è possibile inserire quanto segue in una cella:

from IPython.core.display import display, HTML
display(HTML("<style>.container { width:100% !important; }</style>"))

11
Bello. Sembra che cambi solo le celle di codice / markdown. C'è un modo per farlo fare anche le celle di output?
dreyco676,

13
Questa soluzione ha funzionato per me! Non ho dovuto installare alcun lib o pacchetto per usarlo.
Bill Ancalagon il nero,

1
Sto usando Jupyter per Julia. Sai di cosa ho bisogno in questo caso?
becko,

68
Questo ha cambiato la mia vita
YellowPillow,

1
@becko secondo il discorso di julia funziona:display("text/html", "<style>.container { width:100% !important; }</style>")
Liso

209

Quella div.cellsoluzione in realtà non ha funzionato sul mio IPython, tuttavia fortunatamente qualcuno ha suggerito una soluzione funzionante per i nuovi IPython:

Crea un file ~/.ipython/profile_default/static/custom/custom.css(iPython) o ~/.jupyter/custom/custom.css(Jupyter) con contenuto

.container { width:100% !important; }

Quindi riavviare i notebook iPython / Jupyter. Si noti che ciò influirà su tutti i notebook.


5
Questi piccoli frammenti di informazioni dovrebbero essere pubblicati in qualche luogo, grazie ancora!
vgoklani,

4
Questo è stato estremamente utile
Ivrin,

13
L'avvio del percorso della cartella personalizzata di IPython 4.1 è stato modificato in ~/.jupyter/custom/.
Romain,

6
Ho dovuto riavviare il notebook Jupyter (4.1.0) per farlo funzionare. Ho inserito il css sopra~/.jupyter/custom/custom.css
Paul,

6
Il 100% non sembra molto bello, l'ho cambiato in 90%
liang

69

Per farlo funzionare con jupyter (versione 4.0.6) ho creato ~/.jupyter/custom/custom.csscontenente:

/* 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;
}

Funziona su Linux! Ma dove devo salvarlo in Windows?
crusaderky,

6
Prova a eseguire jupyter --config-dir, quindi crea custom\custom.cssin qualsiasi posizione restituita quel comando.
jvd10,

@ jvd10 questo non ha funzionato per me. Ha custom.cssqualche altro codice oltre allo snippet sopra? Inoltre, come fa Jupyter a usarlo?
mLstudent33,

Almeno su Linux e OSX, per impostazione predefinita jupyter cerca una directory nascosta chiamata .jupyterper i file di configurazione che includono personalizzazioni come quelle sopra. Quanto sopra dovrebbe essere l'unico contenuto di custom.css. Per ulteriori informazioni, consultare qui: jupyter.readthedocs.io/it/latest/projects/…
jvd10

24

È tempo di usare jupyterlab

Finalmente è arrivato un aggiornamento necessario per i notebook. Per impostazione predefinita, utilizza l'intera larghezza della finestra come qualsiasi altro IDE nativo completo.

Tutto quello che devi fare è:

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

Ecco uno screenshot da blog.Jupyter.org


2
JupyterLab è ancora in versione beta e presenta alcune regressioni dai normali notebook (in base alla progettazione). Una cosa degna di nota è vietare JS per impostazione predefinita e richiedere estensioni per ogni piccola visualizzazione JS
Ciprian Tomoiagă,

1
E come puoi modificare la larghezza di una cella di Jupyter Lab?
multigoodverse,

1
Ho lottato per un'ora per far funzionare il laboratorio di Giove. all'inizio non veniva mostrata alcuna grafica (pyplot / plotly). I documenti non menzionano la necessità di installare estensioni per questo. Ho provato a installare l'estensione trama. ho scoperto che hai bisogno di nodejs per questo. installato entrambi, ora ricevo il messaggio "Impossibile trovare il modello:" index.html "". A questo punto ho rinunciato, rimango con il taccuino di Giove.
Itamar Katz,

15

Quello che faccio di solito dopo la nuova installazione è modificare il file css principale in cui sono memorizzati tutti gli stili di visualizzazione. Uso Miniconda ma la posizione è simile con gli altriC:\Miniconda3\Lib\site-packages\notebook\static\style\style.min.css

Con alcuni schermi, queste risoluzioni sono diverse e più di 1. Per stare sul sicuro, cambio tutto al 98%, quindi se mi disconnetto dagli schermi esterni sul mio laptop, ho ancora una larghezza dello schermo del 98%.

Quindi basta sostituire 1140 px con il 98% della larghezza dello schermo.

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

inserisci qui la descrizione dell'immagine

Dopo la modifica

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

inserisci qui la descrizione dell'immagine Salva e riavvia il tuo notebook


Aggiornare

Di recente ho dovuto allargare le celle di Jupyter su un ambiente in cui è installato, il che mi ha portato a tornare qui e ricordare a me stesso.

Se hai bisogno di farlo in ambiente virtuale su cui hai installato jupyter. Puoi trovare il file css in questo sottodir

env/lib/python3.6/site-packages/notebook/static/style/stye.min.css

1
Questo è bellissimo! È semplice e realizza esattamente ciò che è necessario.
arbitrarystringofletters il

@Gunay /notebooknon esiste nella directory per me.
mLstudent33,

Conosci la versione di Python (Python -V quando attivi il tuo ambiente) e come hai creato l'ENV virtuale? Hai usato il modulo venv su Python / Conda?
Gunay Anach,

12

Puoi impostare il CSS di un taccuino chiamando un foglio di stile da qualsiasi cella. Ad esempio, dai un'occhiata al corso 12 Passaggi per Navier Stokes .

In particolare, creando un file contenente

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

dovrebbe darti un punto di partenza. Tuttavia, potrebbe essere necessario adeguarsi, ad esempio, div.text_cell_renderper gestire il markdown e le celle di codice.

Se quel file è custom.cssquindi aggiungere una cella contenente:

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

Ciò applicherà tutti gli stili e, in particolare, cambierà la larghezza della cella.


Questo non funziona nell'ultima versione di IPython (versione> 2). Controllare questa risposta: stackoverflow.com/a/24207353/2108548
rominf

O se vuoi solo cambiarlo per il notebook attuale negli ultimi ipython e jupyter, vedi la risposta di @ jjinking :)
nealmcb

8

(A partire dal 2018, consiglierei di provare JupyterHub / JupyterLab. Utilizza l'intera larghezza del monitor. Se questa non è un'opzione, forse dal momento che stai utilizzando uno dei provider Jupyter-as-a-service basati su cloud, continua a leggere)

(Stylish è accusato di aver rubato i dati degli utenti, invece sono passato all'utilizzo del plug-in Stylus)

Consiglio di utilizzare Stylish Browser Plugin . In questo modo è possibile sovrascrivere i CSS per tutti i portatili, senza aggiungere alcun codice ai portatili. Non ci piace modificare la configurazione in .ipython / profile_default, poiché stiamo eseguendo un server Jupyter condiviso per l'intero team e la larghezza è una preferenza dell'utente.

Ho creato uno stile specifico per gli schermi ad alta risoluzione orientati verticalmente, che allarga le celle e aggiunge un po 'di spazio vuoto nella parte inferiore, in modo da poter posizionare l'ultima cella al centro dello schermo. https://userstyles.org/styles/131230/jupyter-wide Puoi, ovviamente, modificare i miei CSS a tuo piacimento, se hai un layout diverso o non vuoi spazio extra alla fine.

Ultimo ma non meno importante, Stylish è un ottimo strumento da avere nel tuo set di strumenti, poiché puoi facilmente personalizzare altri siti / strumenti a tuo piacimento (ad esempio Jira, Podio, Slack, ecc.)

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

.end_space {
  height: 800px;
}

sì, alla moda è fantastico! Potete per favore aggiungere il codice necessario per lo spazio extra in basso? Ho sempre una cella vuota con molte righe vuote al fine di centrare l'ultima vera cella -_-.
Ciprian Tomoiagă,

2
Stylish è stato rimosso ieri per aver rubato la cronologia di navigazione degli utenti: gadgets.ndtv.com/internet/news/…
stason

6

Per gli utenti di Chrome, consiglio Stylebot , che ti consentirà di sovrascrivere qualsiasi CSS su qualsiasi pagina e di cercare e installare altri CSS personalizzati condivisi. Tuttavia, per il nostro scopo non abbiamo bisogno di alcun tema avanzato. Apri Stylebot, cambia in Edit CSS. Jupyter acquisisce alcuni tasti, quindi non sarai in grado di digitare il codice qui sotto in. Basta copiare e incollare, o solo il tuo editor:

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

Modifica la larghezza come preferisci, trovo che il 90% sia più bello del 100%. Ma dipende totalmente da te.


Fantastico suggerimento per il notebook jupyter ma fa molto di più!
Robino,

@bizi, faccio clic all'interno di una cella di codice e quindi faccio clic con il pulsante destro del mouse, seleziono Stylebot, modifica CSS e copia e incolla quello che hai? Se è così, non ha funzionato per me. Ho appena ottenuto margini più grassi su entrambi i lati.
mLstudent33,

4

Questo è il codice che ho finito per usare. Allunga le celle di input e output a sinistra e a destra. Si noti che l'indicazione del numero di input / output scompare:

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

freddo! Escluderei solo l'ultima riga poiché fa sparire le informazioni sull'esecuzione delle celle (parte delle celle a sinistra, che mostra l'ordine di esecuzione e un * quando l'esecuzione non è ancora finita)
onofricamila

2

Ho apportato alcune modifiche alla soluzione di @ jvd10. Il '! Important' sembra troppo forte per cui il contenitore non si adatta bene quando viene visualizzata la barra laterale TOC. L'ho rimosso e aggiunto 'min-width' per limitare la larghezza minima.

Ecco il mio .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;
}

0

Ho provato di tutto e niente ha funzionato per me, ho finito per mostrare il mio frame di dati come HTML come segue

from IPython.display import HTML    
HTML (pd.to_html())

-1

Per gli utenti di Firefox / Chrome, un buon modo per ottenere una larghezza del 100% è utilizzare uno script TamperMonkey personalizzato .

I benefici sono

  1. configurarlo una volta nel browser, non è necessario modificare la configurazione del server.
  2. funziona con più server jupyter.
  3. TamperMonkey è affidabile, gestito e stabile.
  4. Molte altre personalizzazioni sono possibili tramite JavaScript.

Questo script funziona per me https://gist.githubusercontent.com/mrk-andreev/2a9c2538fad0b687c27e192d5948834f/raw/6aa1148573dc20a22fca126e56e3b03f4abf281b/jpn_tmonkey.js

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.