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.