从函数中显示IPython笔记本中的SVG

pro*_*der 21 python svg ipython-notebook

在IPython笔记本中,以下代码显示单元格下方的SVG:

from IPython.display import SVG
SVG(url='http://upload.wikimedia.org/wikipedia/en/a/a4/Flag_of_the_United_States.svg')
Run Code Online (Sandbox Code Playgroud)

以下内容不显示:

from IPython.display import SVG
def show_svg():
    SVG(url='http://upload.wikimedia.org/wikipedia/en/a/a4/Flag_of_the_United_States.svg')
Run Code Online (Sandbox Code Playgroud)

有没有办法在函数(或类)中显示SVG?

Jak*_*kob 29

你需要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'))
Run Code Online (Sandbox Code Playgroud)

您的第一个示例在SVG对象返回自身时起作用,随后由IPython显示机器显示.由于您希望在自定义方法中创建SVG对象,因此需要注意显示.
display调用类似于普通print语句,但可以处理不同的表示,如图像,html,乳胶等.有关详细信息,请查看丰富的显示文档.


Mik*_*ler 5

添加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')
Run Code Online (Sandbox Code Playgroud)

然后将您的函数作为单元格中的最后一行调用:

show_svg()
Run Code Online (Sandbox Code Playgroud)