【问题标题】:Display SVG in IPython notebook from a function通过函数在 IPython 笔记本中显示 SVG
【发布时间】:2015-07-31 19:09:31
【问题描述】:

在 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?

【问题讨论】:

    标签: python svg ipython-notebook


    【解决方案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、latex 等。详情请看rich display documentation

    【讨论】:

      【解决方案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()
      

      【讨论】:

      • 当 Jupyter notebook 运行时,“return SVG(...)”不会从脚本内部显示 svg。但是display 可以完成这项工作
      • 刚刚又试了一次。在 Mac 上的 Chrome 66.0.3359.139、IPython 6.1 和 Jupyter 4.3.0 中为我工作。
      • 你能用 Safari 试试并给出结果吗?
      • 也可以在 Safari 中使用。
      • 你是直接从 Jupyter 调用 show_svg() 函数,还是从脚本调用 show_svg() 然后在 Jupyter 中键入 %run myScript.py
      猜你喜欢
      • 2014-10-19
      • 1970-01-01
      • 2017-01-25
      • 2016-02-24
      • 2014-12-26
      • 2016-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多