【问题标题】:How do I embed a gif in Jupyter notebook?如何在 Jupyter 笔记本中嵌入 gif?
【发布时间】:2019-01-02 19:15:35
【问题描述】:

我一直在尝试在 Jupyter 笔记本中显示 gif,但遇到了一些问题。我不断收到一个空白图像文件。

我尝试使用来自 this GitHub repository 的 html。

![wignerfunction][1](../gifs/wigner_rotation_animate.gif "wigner")

from IPython.display import Image
Image(url='example.gif')  

到目前为止,上述方法均未奏效。

谢谢

【问题讨论】:

  • GIF 文件名是什么,它存在于磁盘的什么位置?您是否给出了完整路径而不是相对路径?
  • 文件名是:wigner_rotation_animate.gif
  • 我给出了文件路径:那就是 Users/username/Downloads/file/filename.gif
  • 这看起来像 mac 上的相对路径。尝试通过在斜线前面添加绝对值?
  • 试试不带[1],所以![wignerfunction](../gifs/wigner_rotation_animate.gif "wigner")

标签: python ipython jupyter


【解决方案1】:

我一直在尝试在 Jupyter 笔记本中显示 gif,但遇到了一些问题。

要在笔记本中显示 gif,您可以在 Markdown 单元格上使用内联标记,如下所示:

  • 与 ipynb 笔记本文件在同一文件夹中的相对引用:

    ![SegmentLocal](191px-Seven_segment_display-animated.gif "segment")
    
  • 来自 ipynb 笔记本文件所在文件夹的子文件夹图像中的相对引用:

    ![SegmentLocal](images/191px-Seven_segment_display-animated.gif "segment")
    
  • 无论笔记本文件的位置如何,都来自根文件夹的绝对引用:

    ![SegmentLocal](/Users/username/some-folder/191px-Seven_segment_display-animated.gif "segment")
    
  • 网址参考(应该在您的笔记本中开箱即用):

    ![ChessUrl](https://upload.wikimedia.org/wikipedia/commons/7/71/ChessPawnSpecialMoves.gif "chess")
    

作为一个例子,由于堆栈溢出也使用降价,如果给出最后提到的行,则最后一行带有 url 引用:![ChessUrl](https://upload.wikimedia.org/wikipedia/commons/7/71/ChessPawnSpecialMoves.gif "chess"),但未给出代码引用的计算结果为:

你的 jupyter notebook 中也应该显示。现在,如果您可以看到最后一个,但无法从引用的本地文件中看到它,则很可能是 gif 损坏、权限问题或文件路径不正确。

【讨论】:

  • 当我输入:![SegmentLocal](/Users/tommylees/Downloads/video2.gif "segment") 我得到以下错误: - /bin/sh: -c: line 0: syntax error near unexpected token /Users/tommylees/Downloads/video2.gif - /bin/sh: -c: line 0: SegmentLocal' `
  • 您必须将单元格类型设置为降价。也许这应该在主要评论中突出显示
  • 嗯,答案第一句话就字面意思了……
【解决方案2】:

当我需要在 jupyter 笔记本中包含 gif 动画时,我会执行以下操作:

<img src="FileName.gif" width="750" align="center">

宽度和对齐参数由您定义。

谢谢

【讨论】:

    【解决方案3】:

    任何图像格式,无论是 png、jpg、jpeg 或 gif 等,你想在 python jupyter notebook 中显示然后只需使用 matplotlib 库。

    import matplotlib.pyplot as plt
    
    import matplotlib.image as mpimg
    
    img = mpimg.imread("/home/gaurav/assignment/sofcomputing/river.gif")
    
    plt.imshow(img)
    

    【讨论】:

    • 如果没有安装Pillow,该代码将无法工作。您将获得ValueError: Only know how to handle extensions: ['png']; with Pillow installed matplotlib can handle more images,因为imread 在新生环境中只能处理png。更可靠更短使用标准from IPython.display import Image;Image("/home/gaurav/assignment/sofcomputing/river.gif")
    • 当我尝试 Matplotlib 的方式时,GIF 没有动画。 (它是在 x-y 轴上绘制的,所以我并不感到惊讶。)IPython.display.Image 方式显示了带有动画的 GIF。它应该是一个答案,因为它与其他答案的不同之处在于将图形放在可执行单元格输出中,而不是 Markdown。
    猜你喜欢
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-17
    • 2020-11-20
    • 2017-12-04
    相关资源
    最近更新 更多