Como aumentar a largura da célula do bloco de anotações Jupyter / ipython no meu navegador?


349

Gostaria de aumentar a largura do notebook ipython no meu navegador. Eu tenho uma tela de alta resolução e gostaria de expandir a largura / tamanho da célula para fazer uso desse espaço extra.

Obrigado!


editar: 5/2017

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

e este comando:

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

que define a largura para 100% com um bom tema.


11
Tente np.set_printoptions (250)
vgoklani

2
Obrigado! np.set_printoptions(linewidth=110)funciona para mim.
Timo

11
@vgoklani Desculpe, mas 'np'? Onde é que isso veio?
Brandt

11
@Brandt import numpy as np
vgoklani

3
@vgoklani +1 para Jupyter Themes
Gursharan Singh

Respostas:


614

Se você não quiser alterar as configurações padrão e alterar a largura do bloco de anotações atual em que está trabalhando, poderá inserir o seguinte em uma célula:

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

11
Agradável. Parece que apenas altera as células de código / remarcação. Existe uma maneira de fazê-lo também fazer as células de saída?
precisa saber é o seguinte

13
Esta solução funcionou para mim! Não precisei instalar nenhuma lib ou pacote para usá-lo.
Bill Ancalagon o preto

11
Estou usando o Jupyter para Julia. Você sabe o que eu preciso neste caso?
Becko

68
Isso mudou minha vida
YellowPillow

11
@becko de acordo com o discurso de julia, isso funciona:display("text/html", "<style>.container { width:100% !important; }</style>")
Liso

209

Essa div.cellsolução não funcionou realmente no meu IPython, no entanto, felizmente, alguém sugeriu uma solução funcional para novos IPythons:

Crie um arquivo ~/.ipython/profile_default/static/custom/custom.css(iPython) ou ~/.jupyter/custom/custom.css(Jupyter) com conteúdo

.container { width:100% !important; }

Em seguida, reinicie os notebooks iPython / Jupyter. Observe que isso afetará todos os notebooks.


5
Esses pequenos trechos de informações devem ser publicados em algum lugar, obrigado novamente!
vgoklani

4
Isso foi extremamente útil
ivrin 12/11/2014

13
O local da pasta personalizada do IPython 4.1 inicial foi alterado para ~/.jupyter/custom/.
Romain

6
Eu tive que reiniciar o notebook Jupyter (4.1.0) para que ele funcionasse. Eu coloquei o css acima em~/.jupyter/custom/custom.css
Paul

6
100% não parece muito bom, eu mudei para 90%
liang

69

Para que isso funcione com o jupyter (versão 4.0.6), criei ~/.jupyter/custom/custom.csscontendo:

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

Isso funciona no Linux! Mas onde eu preciso salvá-lo no Windows?
Crusaderky #

6
Tente executar jupyter --config-dire crie custom\custom.cssem qualquer local que esse comando retorne.
Jvd10 25/05

@ jvd10 isso não funcionou para mim. Existe custom.cssalgum outro código além do snippet acima? Além disso, como o Jupyter sabe usá-lo?
precisa saber é o seguinte

No linux e no osx, pelo menos, por padrão, o jupyter procura um diretório oculto chamado .jupyterpor arquivos de configuração, incluindo personalizações como a acima. O acima deve ser o único conteúdo do custom.css. Veja aqui mais informações: jupyter.readthedocs.io/en/latest/projects/…
jvd10

24

É hora de usar o jupyterlab

Finalmente, uma atualização muito necessária chegou aos notebooks. Por padrão, ele usa toda a largura da sua janela como qualquer outro IDE nativo completo.

Tudo o que tem a fazer é:

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

Aqui está uma captura de tela do blog.Jupyter.org


2
O JupyterLab ainda está na versão beta e tem algumas regressões dos cadernos regulares (por design). Uma notável é está proibindo JS por padrão e precisando de extensões para cada pequena visualização JS
Ciprian Tomoiagă

11
E como você pode alterar a largura de uma célula do Jupyter Lab?
multigoodverse

11
Eu lutei por uma hora fazendo o laboratório jupyter funcionar. No início, nenhum gráfico (pyplot / plotly) estava sendo exibido. Os documentos não mencionam que você deve instalar extensões para isso. Tentei instalar a extensão plotly. descobri que você precisa do nodejs para isso. instalei os dois, agora recebo a mensagem "Não é possível encontrar o modelo:" index.html "". Neste ponto, eu desisti, estou ficando com um caderno jupiter.
Itamar Katz

15

O que geralmente faço após a nova instalação é modificar o arquivo css principal, onde todos os estilos visuais são armazenados. Eu uso o Miniconda, mas a localização é semelhante com os outrosC:\Miniconda3\Lib\site-packages\notebook\static\style\style.min.css

Em algumas telas, essas resoluções são diferentes e maiores que 1. Por segurança, altero tudo para 98%, portanto, se eu me desconectar das telas externas do laptop, ainda tenho 98% da largura da tela.

Em seguida, substitua 1140px por 98% da largura da tela.

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

insira a descrição da imagem aqui

Após a edição

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

insira a descrição da imagem aqui Salve e reinicie seu notebook


Atualizar

Recentemente, tive que células Jupyter mais amplas em um ambiente em que está instalado, o que me levou a voltar aqui e me lembrar.

Se você precisar fazer isso no ambiente virtual, você instalou o jupyter. Você pode encontrar o arquivo css neste subdir

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

11
Isso é incrível! É simples e realiza exatamente o que é necessário.
Arbitrarystringofletters

@ Gunay /notebooknão existe no diretório para mim.
precisa saber é o seguinte

Você conhece a versão do seu python (python -V quando você ativa seu ambiente) e como você criou o ambiente virtual? Você usou o módulo venv no Python / Conda?
Gunay Anach 24/08/19

12

Você pode definir o CSS de um bloco de notas chamando uma folha de estilo a partir de qualquer célula. Como exemplo, veja o curso 12 Passos para Navier Stokes .

Em particular, a criação de um arquivo contendo

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

deve lhe dar um ponto de partida. No entanto, pode ser necessário também ajustar, por exemplo, div.text_cell_renderpara lidar com remarcações e células de código.

Se esse arquivo for custom.css, adicione uma célula contendo:

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

Isso aplicará todos os estilos e, em particular, alterará a largura da célula.


Isso não funciona no IPython mais recente (versão> 2). Verifique esta resposta: stackoverflow.com/a/24207353/2108548
rominf 25/14

Ou se você só quer mudá-lo para o notebook atual em ipythons recentes e jupyter, ver @ do jjinking resposta :)
nealmcb

8

(A partir de 2018, eu recomendaria experimentar o JupyterHub / JupyterLab. Ele usa toda a largura do monitor. Se isso não for uma opção, talvez porque você esteja usando um dos provedores de Jupyter como serviço de nuvem, continue lendo)

(Stylish é acusado de roubar dados do usuário, passei a usar o plug-in Stylus)

Eu recomendo usar o Stylish Browser Plugin . Dessa forma, você pode substituir o css em todos os notebooks, sem adicionar nenhum código aos notebooks. Não gostamos de alterar a configuração em .ipython / profile_default, pois estamos executando um servidor Jupyter compartilhado para toda a equipe e a largura é uma preferência do usuário.

Criei um estilo especificamente para telas de alta resolução com orientação vertical, que amplia as células e adiciona um pouco de espaço vazio na parte inferior, para que você possa posicionar a última célula no centro da tela. https://userstyles.org/styles/131230/jupyter-wide Você pode, é claro, modificar meu css ao seu gosto, se você tiver um layout diferente ou se não quiser espaço em branco extra no final.

Por último, mas não menos importante, o Stylish é uma ótima ferramenta para ter em seu conjunto de ferramentas, pois você pode personalizar facilmente outros sites / ferramentas ao seu gosto (por exemplo, Jira, Podio, Slack, etc.)

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

.end_space {
  height: 800px;
}

sim, elegante é ótimo! Você pode adicionar o código necessário para o espaço extra na parte inferior? Eu sempre tenho uma célula vazia com muitas linhas em branco para ter a última célula real centralizada em -_-.
Ciprian Tomoiagă

2
Elegante foi tirado do ar ontem por roubar os usuários histórico de navegação: gadgets.ndtv.com/internet/news/...
Stason

6

Para usuários do Chrome, recomendo o Stylebot , que permitirá substituir qualquer CSS em qualquer página, além de pesquisar e instalar outro CSS personalizado de compartilhamento. No entanto, para nosso propósito, não precisamos de nenhum tema avançado. Abra Stylebot, mude para Edit CSS. O Jupyter captura algumas teclas, assim você não poderá digitar o código abaixo. Apenas copie e cole, ou apenas o seu editor:

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

Mude a largura como quiser, acho que 90% parece melhor que 100%. Mas isso depende totalmente dos seus olhos.


Sugestão impressionante para o notebook jupyter, mas faz muito mais!
Robino 15/01/19

@ Bizi, clico dentro de uma célula de código e, em seguida, clique com o botão direito do mouse, selecione Stylebot, edite CSS e copie e cole o que você tem? Nesse caso, não funcionou para mim. Eu só tenho margens mais grossas dos dois lados.
precisa saber

4

Este é o código que acabei usando. Estende células de entrada e saída para a esquerda e direita. Observe que a indicação do número de entrada / saída desapareceu:

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

legal! Eu excluiria apenas a última linha, pois ela faz com que as informações de execução das células desapareçam (parte esquerda das células, que mostra a ordem de execução e um * quando a execução ainda não estiver concluída)
onofricamila

2

Fiz algumas modificações na solução do @ jvd10. O '! Important' parece forte demais para que o contêiner não se adapte bem quando a barra lateral do sumário é exibida. Eu o removi e adicionei 'min-width' para limitar a largura mínima.

Aqui está o meu .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

Eu tentei de tudo e nada funcionou para mim, acabei usando a exibição do meu quadro de dados como HTML da seguinte maneira

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

-1

Para usuários do Firefox / Chrome, uma boa maneira de atingir 100% de largura é usar um script TamperMonkey personalizado .

Os benefícios são

  1. configure isso uma vez no seu navegador, não há necessidade de modificar a configuração do servidor.
  2. trabalha com vários servidores jupyter.
  3. O TamperMonkey é confiável, mantido e estável.
  4. É possível criar muitas personalizações adicionais via javascript.

Este script funciona para mim https://gist.githubusercontent.com/mrk-andreev/2a9c2538fad0b687c27e192d5948834f/raw/6aa1148573dc20a22fca126e56e3b03f4abf281b/jpn_tmonkey.js

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.