redimensionar janela de saída do notebook ipython


111

Por padrão, a saída do notebook ipython é limitada a uma pequena subjanela na parte inferior. Isso nos obriga a usar uma barra de rolagem separada que vem com a janela de saída, quando a saída é grande.

Alguma opção de configuração para torná-lo não limitado em tamanho, em vez de executar tão alto quanto a saída real é? Ou a opção de redimensioná-lo depois de criado?

Respostas:


9

Veja a extensão jupyter autoscroll (parte de jupyter_contrib_nbextensions) , que permite selecionar quando a saída começa a rolar em um menu suspenso (você pode configurá-lo para nunca rolar). A API usada não é oficialmente suportada, portanto, pode falhar a qualquer momento.


Obrigado Matt! Como eu uso isso?
— nom-mon-ir

1
clone o repo no lugar certo em seu perfil ipython. (cf readme) copie custom.example.js para custom.js e remova o comentário de require ('custom / autoscroll.js') nele. Reinicie o IPython.
— Matt

236

Você pode alternar a janela de rolagem no menu principal do notebook

Célula -> Saídas de corrente -> Alternar rolagem


23
Ou (Célula -> Todas as saídas -> Alternar rolagem)
— aquirdturtle

alguma maneira de fazer isso por célula? Por exemplo, a célula com muito conteúdo json deseja rolar, mas a célula com saída de imagem gostaria de não rolar.
— marrom.2179

1
Legal, também se estiver rolando, apenas clicar no lado esquerdo da saída irá expandi-lo e torná-lo não rolante. :-)
— user1953366

1
Esta deve ser a resposta aceita. É muito mais atual do que a resposta aceita e funciona perfeitamente.
— Sean McCarthy

45

Adendo nº 2: este comentário: https://github.com/ipython/ipython/issues/2172#issuecomment-53708976 indica como você pode aumentar o tamanho máximo das células de saída. Execute o seguinte código no notebook:

%%javascript
IPython.OutputArea.auto_scroll_threshold = 9999;

Não parece funcionar. No console eu recebo: accessing OutputArea is deprecated. Use require("notebook/js/outputarea").OutputArea. Colocar isso no console mostra que é uma função.
— brócolis 2000

Não funcionou para mim, possivelmente porque minha saída é gerada por Javascript.
— osa

2
não funciona. a saída após a execução de uma célula ainda está em uma área de rolagem. No meu caso, de repente, o notebook ipython muda para painéis com rolagem para certas saídas, enquanto eles costumavam ser "normais" de antemão. Muito enigmático ...
— user989762

22

Apenas coloquei meu cursor na caixa cinza ao lado da saída e cliquei e, em seguida, toda a saída foi exibida.


Uau, esta foi uma solução tão simples. Por que alguma das outras "soluções" postadas eram necessárias?
— Rafael_Espericueta

15

Isso funcionou para mim no Chrome. Execute-o em uma célula separada. Escolha a altura máxima que você deseja exibir sem rolar.

%%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>

Você ainda receberá barras de rolagem se o conteúdo exceder a altura máxima. Não haverá uma caixa de sombra, no entanto. Apenas aumente a altura máxima ainda mais se realmente não quiser rolar.


ótimo. Este pedaço de código fez o truque. Estranho, esta não é uma configuração documentada do notebook ipython / jupyter.
— user989762

Eu prefiro isso a adicionar uma extensão. Também usei esse método para formatar o resto da minha saída. Obrigado, @ broccoli2000!
— hyperGeoMetric

Não sabia que você poderia fazer isso ... um pouco hacky, mas parece que o ambiente Jupyter em geral também. Obrigado!
— Ezekiel Victor

11

Para redimensionar a altura da saída rolável, eu faço o seguinte (você pode alterar para 44em):

from IPython.core.display import display, HTML
display(HTML("<style>div.output_scroll { height: 44em; }</style>"))

1
Isso é TÃO INCRÍVEL e ainda funciona com Jupyter 1.0+
— rjurney

2

Para um iplot plot.ly, tive que adicionar o seguinte para ver qualquer mudança (mudou todas as saídas)

%%html
<style>
.python-iframe > iframe {
  height:1000px !important;
}
</style>

0

Tentei todas as opções acima e nenhuma funcionou. Foi assim que me livrei da célula de rolagem. Clique com o botão direito na célula e clique em "desativar rolagem para saídas" Eu sei que isso não redimensiona a célula de rolagem, mas torna meu código mais legível, pois as células de rolagem são muito pequenas (pelo menos para mim).


-1

No JupyterLab, você pode clicar com o botão direito e escolher: Criar nova visualização para saída .

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.