Jupyter Notebook: команда для скрытия вывода ячейки?

В моей записной книжке у меня есть результаты вычисления временных параметров ячейки. Он немного длинный, поэтому после его запуска я хочу скрыть его и при необходимости показать его.

Чтобы сделать это вручную, я могу дважды щелкнуть левую часть вывода, чтобы скрыть его

введите описание изображения здесь

После двойного щелчка введите описание изображения здесь

Но есть ли способ сделать это с помощью кода? Например,

в последней строке ячейки используйте команду типа %%hide output, и вывод будет скрыт после завершения работы.

Кроме того, могу ли я получить эту функцию в выходном HTML?

Ответы

Ответ 1

Добавьте ; к концу ячейки, чтобы скрыть вывод этой ячейки.

Ответ 2

В более новых версиях (5.0.0 на момент написания этой статьи) нажатие o в командном режиме скрывает вывод ячейки в фокусе. То же самое происходит, если вы трижды щелкнете перед выходом.

o - это

Ответ 3

В более новых версиях Jupiter Notebook выберите нужную ячейку, убедитесь, что вы находитесь в командном режиме, а затем в меню нажмите Cell> Current Outputs. У вас есть три варианта:

  • Переключить (нажмите O в командном режиме, чтобы применить тот же эффект)
  • Toggle Scrolling (выход по умолчанию)
  • Очистить (очистить вывод все вместе)

Параметры изображения в Menubar

Кроме того, вы можете применить один и тот же эффект ко всем ячейкам в вашем документе, если вы выбрали "Весь вывод" вместо "Текущий вывод".

Ответ 4

Основываясь на этом, я только что придумал это для себя несколько минут назад:

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

У него есть сбой: каждый раз, когда вы запускаете эту ячейку (которую я помещаю вверху), она добавляет кнопку. Итак, это то, что нужно исправить. Вам нужно будет проверить maintoolbar-container, чтобы увидеть, существует ли кнопка, а затем не добавлять ее.

ИЗМЕНИТЬ

Я добавил необходимый фрагмент кода:

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

Ответ 5

Не совсем то, что вам нужно, но эффект может быть достаточно хорошим для ваших целей:

Посмотрите на магию захвата %% (https://nbviewer.jupyter.org/github/ipython/ipython/blob/1.x/examples/notebooks/Cell%20Magics.ipynb). Это позволяет назначить вывод этой ячейки переменной. Позвонив по этой переменной позже, вы можете увидеть результат.

Ответ 6

Если вы не против небольшого взлома, тогда вы можете написать простой script для инвертирования атрибута "обрушившийся" каждой ячейки от false до true в файле .ipynb для ноутбука (который является простым JSON файлом). Однако это может привести к сбою в будущем при изменении формата .ipynb.