2016-05-11 43 views
15

Nel mio quaderno, ho una cella che restituisce i risultati del calcolo della temperatura. È un po 'lungo, quindi dopo che è stato eseguito, voglio nasconderlo e quando necessario, per mostrarlo.Notebook Jupyter: comando per nascondere l'output di una cella?

farlo manualmente, posso fare doppio clic sul lato sinistro della produzione, per nasconderlo

enter image description here

Dopo doppio click enter image description here

Ma c'è un modo per fare questo per codice? Ad esempio,

l'ultima riga della cella, utilizzare un comando come %%hide output e l'output sarebbe nascosto dopo aver terminato l'esecuzione.

Inoltre, è possibile ottenere questa funzionalità nell'output HTML?

+0

L'unico modo per controllarlo dal codice nel notebook è produrre output HTML personalizzato con un pulsante Nascondi/Mostra. –

+0

@ThomasK, quindi non posso 'automaticamente 'nascondere l'output emettendo qualcosa? – cqcn1991

+0

Potresti essere in grado di "visualizzare" alcuni Javascript che vengono eseguiti e lo fanno, ma è un po 'hackerato. Non so cosa sarebbe l'invocazione di JS. –

risposta

19

Aggiungere ; alla fine della cella per nascondere l'output di quella cella.

+0

I potrebbe non essere chiaro. Voglio nascondermi, ma in seguito potrebbe essere visualizzato se apro un pulsante o qualcosa di simile. – cqcn1991

+0

No, questo elimina solo la visualizzazione dell'ultima uscita di una cella. Esempio: stampa 3; – ntg

-1

Se non ti dispiace un po 'di hacking, allora puoi scrivere un semplice script per invertire l'attributo "collassato" di ogni cella da falso a vero nel file .ipynb del notebook (che è un semplice file JSON) . Questo potrebbe tuttavia non riuscire in futuro se cambia il formato .ipynb.

0

Sulla base di this, ho appena si avvicinò con questo per me stesso qualche minuto fa:

%%javascript 

$('#maintoolbar-container').children('#toggleButton').remove() 

var toggle_button = ("<button id='toggleButton' type='button'>Show Code</button>"); 
$('#maintoolbar-container').append(toggle_button); 

var code_shown = false; 

function code_toggle() 
{ 

    if (code_shown) 
    { 
     console.log("code shown") 
     $('div.input').hide('500'); 
     $('#toggleButton').text('Show Code'); 
    } 
    else 
    { 
     console.log("code not shown") 
     $('div.input').show('500'); 
     $('#toggleButton').text('Hide Code'); 
    } 

    code_shown = !code_shown; 
} 

$(document).ready(function() 
{ 
    code_shown=false; 
    $('div.input').hide(); 
}); 

$('#toggleButton').on('click', code_toggle); 

Ha un problema tecnico: ogni volta che si esegue quella cella (che ho messo in alto), si aggiunge un pulsante. Quindi, questo è qualcosa che deve essere risolto. Avrebbe bisogno di controllare il maintoolbar-container per vedere se il pulsante esiste già, e quindi non aggiungerlo.

EDIT

ho aggiunto il pezzo necessario di codice:

$('#maintoolbar-container').children('#toggleButton').remove() 
+0

Nasconde i codici non emessi. – vesszabo

8

Nelle versioni più recenti (5.0.0 al momento sto scrivendo questo), premendo 'o' in modalità di comando nasconde l'output della cella a fuoco. Lo stesso accade se fai un triplo clic davanti all'output.