Коллапс ячейки в ноутбуке jupyter - программирование
Подтвердить что ты не робот

Коллапс ячейки в ноутбуке jupyter

Я использую ipython Jupyter notebook. Скажем, я определил функцию, которая занимает много места на моем экране. Есть ли способ свернуть ячейку?

Я хочу, чтобы функция оставалась выполненной и вызываемой, но я хочу скрыть/свернуть ячейку, чтобы лучше визуализировать ноутбук. Как я могу это сделать?

4b9b3361

Ответ 1

jupyter contrib nbextensions Пакет Python содержит расширение для сгибания кода, которое можно включить в ноутбуке. Следуйте ссылке (Github) для документации.

Чтобы установить с помощью командной строки:

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user

Чтобы облегчить жизнь в управлении ими, я также рекомендую пакет jupyter nbextensions configurator. Это обеспечивает дополнительную вкладку в интерфейсе вашего ноутбука, где вы можете легко (de) активировать все установленные расширения.

Установка:

pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user

Ответ 2

Вы можете создать ячейку и вставить в нее следующий код:

%%html
<style>
div.input {
    display:none;
}
</style>

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

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

https://github.com/ipython-contrib/IPython-notebook-extensions/wiki/Home_3x

Ответ 3

JupyterLab поддерживает разрушение клеток. Нажав на синюю ячейку слева, вы свернете ячейку. enter image description here

Ответ 4

У меня была похожая проблема, и "nbextensions", указанные @Energya, работали очень хорошо и без усилий. Инструкции по установке просты (я пробовал с anaconda на Windows) для расширений ноутбука и их конфигуратора.

Тем не менее, я хотел бы добавить, что следующие расширения должны представлять интерес.

  • Скрыть вход | Это расширение позволяет скрыть отдельную кодовую ячейку в блокноте. Это можно сделать, нажав на кнопку панели инструментов: Hide Input

  • Складные заголовки | Позволяет записной книжке иметь разделы, разделенные заголовками Collapsible Headings

  • Кодфолдинг | Это было упомянуто, но я добавляю это для полноты Codefolding

Ответ 5

Создайте файл custom.js внутри ~/.jupyter/custom/со следующим содержимым:

$("<style type='text/css'> .cell.code_cell.collapse { max-height:30px; overflow:hidden;} </style>").appendTo("head");
$('.prompt.input_prompt').on('click', function(event) {
    console.log("CLICKED", arguments)   
    var c = $(event.target.closest('.cell.code_cell'))
    if(c.hasClass('collapse')) {
        c.removeClass('collapse');
    } else {
        c.addClass('collapse');
    }
});

После сохранения перезагрузите сервер и обновите ноутбук. Вы можете свернуть любую ячейку, щелкнув по метке ввода (In []).

Ответ 6

Расширение hide_code позволяет скрывать отдельные ячейки и/или подсказки рядом с ними. Установить как

pip3 install hide_code

Посетите https://github.com/kirbs-/hide_code/ для получения дополнительной информации об этом расширении.

Ответ 7

Во-первых, следуйте инструкциям Energya:

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user

Второй ключ:. После открытия ноутбука юпитера перейдите на вкладку Nbextension. Теперь Поиск "colla" из инструмента поиска, предоставляемого Nbextension (не веб-браузером), вы найдете что-то под названием "Складные заголовки"

Это то, что вы хотите!

Ответ 8

Там также улучшенная версия предложения Pan Yan. Он добавляет кнопку, которая показывает ячейки кода обратно:

%%html
<style id=hide>div.input{display:none;}</style>
<button type="button" 
onclick="var myStyle = document.getElementById('hide').sheet;myStyle.insertRule('div.input{display:inherit !important;}', 0);">
Show inputs</button>

Или python:

# Run me to hide code cells

from IPython.core.display import display, HTML
display(HTML(r"""<style id=hide>div.input{display:none;}</style><button type="button"onclick="var myStyle = document.getElementById('hide').sheet;myStyle.insertRule('div.input{display:inherit !important;}', 0);">Show inputs</button>"""))

Ответ 9

Вам не нужно ничего делать, кроме как включить расширения:

http://localhost:8888/nbextensions?nbextension=collapsible_headings
http://localhost:8888/nbextensions?nbextension=codefolding/main

enter image description here

Скорее всего, вы найдете все свои расширения здесь:

http://localhost:8888/nbextensions

enter image description here