Eu tenho um notebook ipython / jupyter que visualizo usando o NBviewer.
Como ocultar todo o código do notebook renderizado pelo NBviewer, para que apenas a saída do código (por exemplo, gráficos e tabelas) e as células de marcação sejam exibidas?
javascript
ipython
ipython-notebook
lucacerona
fonte
fonte
Respostas:
fonte
<form action ... > ... </form>
com HTML simples comoThe raw code for this IPython notebook is by default hidden for easier reading.To toggle on/off the raw code, click <a href="javascript:code_toggle()">here</a>.
Agora isso é possível diretamente do nbconvert a partir da versão 5.2.1 : o conteúdo pode ser filtrado usando as opções de exclusão do exportador de modelo interno . Por exemplo:
excluirá as células "código de entrada", ou seja, o próprio código. Existem opções semelhantes para excluir prompts, células de marcação ou saídas, ou ambas, entradas e saídas.
(Essas opções devem funcionar independentemente do formato de saída.)
fonte
Eu usaria a
hide_input_all
partir de nbextensions ( https://github.com/ipython-contrib/IPython-notebook-extensions ). Aqui está como:Descubra onde está o seu diretório IPython:
Faça o download de nbextensions e mova-o para o diretório IPython.
Edite seu arquivo custom.js em algum lugar do diretório IPython (o meu estava em profile_default / static / custom ) para ser semelhante ao custom.example.js no diretório nbextensions .
Adicione esta linha ao custom.js :
O IPython Notebook agora terá um botão para alternar as células de código, independentemente da pasta de trabalho.
fonte
A versão mais recente do notebook IPython não permite mais a execução de javascript nas células de remarcação; portanto, adicionar uma nova célula de remarcação com o seguinte código javascript não funcionará mais para ocultar suas células de código (consulte este link )
Altere ~ / .ipython / profile_default / static / custom / custom.js conforme abaixo:
fonte
Eu escrevi um código que realiza isso e adiciona um botão para alternar a visibilidade do código.
O seguinte está em uma célula de código na parte superior de um notebook:
Você pode ver um exemplo de como isso fica no NBviewer aqui .
Atualização: Isso terá algum comportamento engraçado com as células Markdown no Jupyter, mas funciona bem na versão de exportação HTML do notebook.
fonte
'.input_area'
e'.prompt'
, use'div.input'
e funciona como um encanto! Então, para recapitular, substituajQuery("div.input").toggle();
no lugar dejQuery('.input_area').toggle(); jQuery('.prompt').toggle();
. @ Max Masnick, você poderia consertar sua resposta?CSS = """#notebook div.output_subarea { max-width:100%;"""
HTML('<style>{}</style>'.format(CSS))
. Isso é muito útil para impressão.Existe uma boa solução fornecida aqui que funciona bem para notebooks exportados para HTML. O site ainda tem links para este post da SO, mas não vejo a solução de Chris aqui! (Chris, onde você está?)
Essa é basicamente a mesma solução que a resposta aceita do harshil, mas tem a vantagem de ocultar o próprio código de alternância no HTML exportado. Também gosto que essa abordagem evite a necessidade da função HTML IPython.
Para implementar esta solução, adicione o seguinte código a uma célula 'Raw NBConvert' na parte superior do seu notebook:
Em seguida, basta exportar o notebook para HTML. Haverá um botão de alternância na parte superior do notebook para mostrar ou ocultar o código.
Chris também fornece um exemplo aqui .
Posso verificar se isso funciona no Jupyter 5.0.0
Atualização : Também é conveniente mostrar / ocultar os
div.prompt
elementos junto com osdiv.input
elementos. Isso remove oIn [##]:
eOut: [##]
texto e reduz as margens do lado esquerdo.fonte
$('div.output').next().hide('500');
para ocultar a próxima saída? Eu tentei, mas não consigo fazer isso funcionar.Isso pode ser feito usando um
ToggleButton
widget IPython e um pouco de JavaScript. O código a seguir deve ser colocado em uma célula de código na parte superior do documento:Isso cria o seguinte botão para alternar entre mostrar / ocultar o código para o Jupyter Notebook, padronizado com o estado "ocultar":
Quando definido para o estado "show", você pode ver o código do Notebook Jupyter:
Além disso, embora muito desse código deva ser colocado no início do Notebook, o local do botão de alternância é opcional. Pessoalmente, prefiro mantê-lo na parte inferior do documento. Para fazer isso, basta mover a
display(button)
linha para uma célula de código separada na parte inferior da página:fonte
Para uma melhor exibição com um documento impresso ou um relatório, também precisamos remover o botão e a capacidade de mostrar ou ocultar certos blocos de código. Aqui está o que eu uso (basta copiar e colar isso na sua primeira célula):
Então, nas suas próximas células:
e
fonte
Isso renderizará uma saída do notebook IPython. No entanto, você poderá visualizar o código de entrada. Você pode copiar um bloco de anotações e adicionar esse código, se necessário, para compartilhar com alguém que não precisa visualizá-lo.
fonte
from IPython.display import HTML HTML('''<script> $('div.input').show()''')
Converta a célula em Markdown e use a
<details>
tag HTML5 como no exemplojoyrexus
:https://gist.github.com/joyrexus/16041f2426450e73f5df9391f7f7ae5f
fonte
Aqui está outra solução sugerida pelo p3trus :
Conforme descrito por p3trus : "[It] adiciona um botão à barra de ferramentas do notebook ipython para ocultar / mostrar a célula do código de entrada. Para usá-lo, você deve colocar o arquivo custom.js em sua
.ipython_<profile name>/static/custom/
pasta, onde é o perfil do ipython em uso. "Meus próprios comentários: verifiquei esta solução e funciona com o iPython 3.1.0.
fonte
A solução aceita também funciona em julia Jupyter / IJulia com as seguintes modificações:
observe em particular:
display
função$
sinal (visto como uma variável)fonte
Aqui está um bom artigo (o mesmo que o @Ken postou) sobre como aperfeiçoar os notebooks Jpuyter (o novo IPython) para apresentação. Existem inúmeras maneiras de estender o Jupyter usando JS, HTML e CSS, incluindo a capacidade de se comunicar com o kernel python do notebook a partir de javascript. Existem decoradores mágicos para
%%HTML
e,%%javascript
portanto, você pode fazer algo assim em uma célula sozinha:Também posso garantir que os métodos de Chris funcionam no jupyter 4.XX
fonte
Solução muito fácil usando o console do navegador. Você copia isso no console do navegador e pressiona enter:
Em seguida, você alterna o código da célula simplesmente clicando no número de entrada da célula.
fonte
(Papel) Imprimindo ou salvando como HTML
Para aqueles que desejam imprimir em papel, as respostas acima, por si só, parecem não fornecer uma boa saída final. No entanto, pegar o código de @Max Masnick e adicionar o seguinte permite imprimi-lo em uma página A4 completa.
O motivo do recuo é que a seção de prompt removida por Max Masnick significa que tudo muda para a esquerda na saída. No entanto, isso não fez nada para a largura máxima da saída que estava restrita
max-width:100%-14ex;
. Isso altera a largura máxima da sub-área de saída paramax-width:100%;
.fonte
Com todas as soluções acima, mesmo que você esteja ocultando o código, você ainda terá a
[<matplotlib.lines.Line2D at 0x128514278>]
porcaria acima do valor que provavelmente não deseja.Se você realmente deseja se livrar da entrada em vez de apenas escondê-la, acho que a solução mais limpa é salvar suas figuras em disco em células ocultas e incluir apenas as imagens nas células Markdown usando, por exemplo
![Caption](figure1.png)
.fonte
_ = plt.plot()
para não imprimi-lo[<>]
porcariafonte
fonte