Отображение SVG в ноутбуке IPython из функции
В ноутбуке IPython следующий код отображает SVG под ячейкой:
from IPython.display import SVG
SVG(url='http://upload.wikimedia.org/wikipedia/en/a/a4/Flag_of_the_United_States.svg')
Ниже ничего не отображается:
from IPython.display import SVG
def show_svg():
SVG(url='http://upload.wikimedia.org/wikipedia/en/a/a4/Flag_of_the_United_States.svg')
Есть ли способ отобразить SVG из функции (или класса)?
Ответы
Ответ 1
Вам нужно display
SVG, например
from IPython.display import SVG, display
def show_svg():
display(SVG(url='http://upload.wikimedia.org/wikipedia/en/a/a4/Flag_of_the_United_States.svg'))
Первый пример работает, когда объект SVG возвращается сам, а затем отображается машиной отображения IPython. Поскольку вы хотите создать свой SVG-объект в пользовательском методе, вам нужно позаботиться о его отображении.
Вызов display
аналогичен обычному выражению print
, но может обрабатывать различные представления, такие как изображения, html, латекс и т.д. Подробнее см. богатая документация по отображению.
Ответ 2
Добавьте return
к вашей функции:
from IPython.display import SVG
def show_svg():
return SVG(url='http://upload.wikimedia.org/wikipedia/en/a/a4/Flag_of_the_United_States.svg')
Затем вызовите свои функции как последнюю строку в ячейке:
show_svg()