Как программно генерировать выходные данные уценки в записных книжках Jupyter?

97

Я хочу написать отчет о занятиях в Jupyter notebook. Я бы хотел посчитать кое-что, сгенерировать результаты и включить их в уценку. Могу ли я настроить вывод ячейки как уценку?
Мне нужна такая команда: print '$\phi$'генерировать символ phi, как в уценке.
Другими словами, я бы хотел сделать шаблон в markdown и вставить значения, созданные программой, записанной в блокноте. Пересчет записной книжки должен дать новые результаты и новую уценку с добавленными новыми значениями. Возможно ли это с помощью этого программного обеспечения, или мне нужно заменить значения самостоятельно?

фулафекс
источник

Ответы:

141

Нужные вам функции находятся в модуле IPython.display .

from IPython.display import display, Markdown, Latex
display(Markdown('*some markdown* $\phi$'))
# If you particularly want to display maths, this is more direct:
display(Latex('\phi'))
Томас К
источник
1
Большое спасибо, я думаю, это должно мне значительно помочь. Если я могу спросить, есть ли способ скрыть ячейку с помощью кода? Я имею в виду, когда я "компилирую" ячейку уценки, "код" исчезает, и виден только скомпилированный вывод уценки. Я бы хотел повторить это, но с display_markdownфункцией.
fulaphex
2
К сожалению, ваш код не работает для меня, он не дает никаких результатов.
fulaphex
1
Теперь это действительно работает, спасибо. Есть ли команда для скрытия ячейки, чтобы я мог сгенерировать эту уценку, и она вела бы себя, как обычная ячейка уценки?
fulaphex
2
Ссылка в предыдущем комментарии больше не работает, расширение теперь можно найти по адресу: github.com/ipython-contrib/jupyter_contrib_nbextensions/tree/…
BioGeek
2
Я получаю объект, а не отпечаток:<IPython.core.display.Markdown object>
loretoparisi
31

По сути, вы просите о двух разных вещах:

  1. Ячейки Markdown, выводящие результаты кода.

    Я бы хотел посчитать кое-что, сгенерировать результаты и включить их в уценку. [...] Я хотел бы иметь шаблон в markdown и вставлять значения, созданные программой, в блокнот

  2. Ячейки кода, выводящие уценку

    Мне нужна такая команда: print '$\phi$'генерировать символ phi, как в уценке.

Поскольку 2. уже охвачен другим ответом (в основном: использовать Latex()или Markdown()импортировать из IPython.display), я сосредоточусь на первом:


1. Шаблон Markdown со вставленными переменными

С расширением Jupyter Python Markdown действительно можно делать именно то, что вы описываете.

Инструкции по установке можно найти на странице github nbextensions. Убедитесь, что вы включили расширение уценки python с помощью команды jupyter или конфигуратора расширений .

С расширением доступ к переменным осуществляется через {{var-name}}. Пример такого шаблона уценки может выглядеть так:

Код Python в ячейках Markdown

Переменная a равна {{a}}

Вы также можете встроить сюда LateX: {{b}}!

Можно встраивать даже изображения: {{i}}

Естественно , все переменные или изображения a, b, iдолжны быть установлены в предыдущем коде. И, конечно, вы также можете использовать выражения в стиле Markdown-Latex (например, $\phi$) без команды печати. Это изображение из вики-страницы расширения, демонстрирующее возможности.

пример из вики


Дополнительная информация об этой функции, интегрированной в ipython / jupyter, обсуждается в средствах отслеживания проблем для ipython и jupyter .

Медовый мишка
источник
Это доступно в Jupyter Lab?
BND
Я этим не пользуюсь, поэтому у меня нет опыта. Однако я не могу найти "Python Markdown" в списке расширений jupyter-lab: github.com/topics/jupyterlab-extension?q=&unscoped_q= - поэтому: может быть, нет?
Honeybear