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?

nom-mon-ir
fonte

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.

Matt
fonte
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

Jacob Stevenson
fonte
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;
Keflavich
fonte
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.

Taylor Somma
fonte
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.

brócolis 2000
fonte
ó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>"))
aless80
fonte
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>
Cireo
fonte
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).

Chris
fonte
-1

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

baz
fonte