首页 文章

如何从jupyter笔记本中嵌入图像或图片,无论是从本地计算机还是从Web资源?

提问于
浏览
169

我想在jupyter笔记本中包含图像 .

如果我做了以下,它的工作原理:

from IPython.display import Image
Image("img/picture.png")

但我想将图像包含在markdown单元格中,以下代码给出了404错误:

![title]("img/picture.png")

我也试过了

![texte]("http://localhost:8888/img/picture.png")

但我仍然得到同样的错误:

404 GET /notebooks/%22/home/user/folder/img/picture.png%22 (127.0.0.1) 2.74ms referer=http://localhost:8888/notebooks/notebook.ipynb

9 回答

  • 43

    降价时,不得在图像文件名称周围使用引号!

    如果您仔细阅读了错误消息,您将在链接中看到两个 %22 部分 . 这是html编码的引号 .

    你必须改变这条线

    ![title]("img/picture.png")
    

    ![title](img/picture.png)
    

    UPDATE

    假设您具有以下文件结构,并且在存储文件 example.ipynb (< - 包含图像的标记)的目录中运行 jupyter notebook 命令:

    /
    +-- example.ipynb
    +-- img
        +-- picture.png
    
  • 9

    有几种方法可以在Jupyter笔记本中发布图像:

    来自HTML:

    from IPython.display import Image
    from IPython.core.display import HTML 
    Image(url= "http://my_site.com/my_picture.jpg")
    

    您保留使用HTML标记调整大小等的能力......

    Image(url= "http://my_site.com/my_picture.jpg", width=100, height=100)
    

    您还可以通过相对路径或绝对路径显示本地存储的图像 .

    PATH = "/Users/reblochonMasque/Documents/Drawings/"
    Image(filename = PATH + "My_picture.jpg", width=100, height=100)
    

    if the image it wider than the display settings: thanks

    使用 unconfined=True 禁用图像的最大宽度限制

    from IPython.core.display import Image, display
    display(Image('https://i.ytimg.com/vi/j22DmsZEv30/maxresdefault.jpg', width=1900, unconfined=True))
    

    或通过降价:

    (确保单元格是降价单元格,而不是代码单元格,感谢评论中的@游凯超)

    for a web image:

    ![Image of Yaktocat](https://octodex.github.com/images/yaktocat.png)
    

    如@cristianmtr所示注意不要在网址周围使用这些引号 "" 或那些 '' .

    or a local one:

    ![title](img/picture.png)
    

    由@Sebastian演示

  • 126

    或者,您可以使用纯HTML <img src> ,它允许您更改高度和宽度,并仍由降价解释器读取:

    <img src="subdirectory/MyImage.png",width=60,height=60>
    
  • 10

    以下是Markdown如何做到这一点:

    ![Image of Yaktocat](https://octodex.github.com/images/yaktocat.png)
    
  • 172

    如果你想使用Jupyter Notebook API(而不是IPython),我会找到ipywidgets Jupyter的子项目 . 你有一个 Image 小部件 . Docstring指定您有一个 value 参数,它是一个字节 . 所以你可以这样做:

    import requests
    from ipywidgets import Image
    
    Image(value=requests.get('https://octodex.github.com/images/yaktocat.png').content)
    

    我同意,使用Markdown风格更简单 . 但它会向您显示图像显示Notebook API . 您还可以使用 widthheight 参数调整图像大小 .

  • 5

    我很惊讶这里没有人提到过html cell magic选项 . 来自docs(IPython,但Jupyter也一样)

    %% html将单元格渲染为HTML块

  • 4

    这是 JupyterPython3 的解决方案:

    我将我的图像下载到名为 ImageTest 的文件夹中 . 我的目录是:

    C:\Users\MyPcName\ImageTest\image.png
    

    为了显示图像我使用了这个表达式:

    ![title](/notebooks/ImageTest/image.png "ShowMyImage")
    

    还要注意 / 和 **

  • 5

    除了使用HTML的其他答案(在Markdown中或使用 %%HTML 魔法:

    如果您需要指定图像高度,这将不起作用:

    <img src="image.png" height=50> <-- will not work
    

    这是因为Jupyter中的CSS样式默认使用 height: auto img 标记,这会覆盖HTML height属性 . 您需要覆盖CSS height 属性:

    <img src="image.png" style="height:50px"> <-- works
    
  • 9

    这对我来说是一个降价单元格 . 不知怎的,我不需要特别提到它是一个图像还是一个简单的文件 .

    ![](files/picture.png)
    

相关问题