我想包括在木星笔记本图像。

如果我做了以下操作,它就会起作用:

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

当前回答

我对这个主题做了一些研究,并找到了在Jupyter Notebook中插入图像的4种方法,我在文章中描述过。

1. 拖放图像到单元格(最简单!)

请将单元格切换为markdown类型,然后将图像拖放到那里。图像将被内部编码为Base64,其文本表示形式将包含在ipynb文件中。我建议只对小图像使用此方法,因为您的笔记本ipynb文件可能会变得非常大且滞后(如果放入太多大图像)。

2. 插入托管映像

将图像上传到服务器(可能是Imgur或GitHub),并在Markdown中输入图像URL:

![alternative text goes here](path-to-the-image)

3.插入本地文件映像

您可以对本地映像使用上述方法,但它需要具有与笔记本相同的根目录。

在Markdown:

![alternative text](path-to-image)

或者你可以使用Python:

from IPython import display
display.Image("path-to-image")

将图像转换为Base64(仅适用于小图像)

与第一步类似,不同之处在于转换到Base64是手动完成的。

Python代码:

from IPython import display
from base64 import b64decode
base64_data = "iVBORw0KGgoAAAANSUhEUgAABL ...  the rest of data "
display.Image(b64decode(base64_data))

应该用于相当小的图像。

我个人对GitHub存储库中托管的图像使用第二种方法。

其他回答

虽然上面的很多答案都给出了使用文件或Python代码嵌入图像的方法,但有一种方法只使用markdown和base64就可以在jupyter笔记本中嵌入图像!

要在浏览器中查看图像,base64编码的png图像可以访问链接data:image/png;base64,**image data here**, base64,**image data here**, base64,**image data here**。在答案的末尾可以找到一个示例链接。

要将其嵌入到markdown页面中,只需使用与文件答案类似的构造,但使用base64链接:![**description**](data:image/**type**;base64,**base64 data**)。现在你的图像是100%嵌入到你的Jupyter笔记本文件!

链接示例:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAD9JREFUGJW1jzEOADAIAqHx/1+mE4ltNXEpI3eJQknCIGsiHSLJB+aO/06PxOo/x2wBgKR2jCeEy0rOO6MDdzYQJRcVkl1NggAAAABJRU5ErkJggg==

减价示例: !(微笑)(数据:图像/ png; base64, iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs + 9 aaaabhncsvqicagifahkiaaaad9jrefugjw1jzeoadaiaqhx / 1 + mE4ltNXEpI3eJQknCIGsiHSLJB + aO / 06 pxoo / x2wBgKR2jCeEy0rOO6MDdzYQJRcVkl1NggAAAABJRU5ErkJggg = =)

在markdown中,您不能在图像文件的名称周围使用引号!

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

你得换条线

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

to

![title](img/picture.png)

更新

假设您拥有以下文件结构,并且在文件示例所在的目录中运行jupyter notebook命令。Ipynb(<——包含图像的markdown)被存储:

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

我很惊讶这里没有人提到html单元格魔法选项。 从文档(IPython,但同样为Jupyter)

% % html 将单元格呈现为HTML块

将图像直接插入Jupyter笔记本。

注意:您的计算机上应该有映像的本地副本

您可以将图像插入Jupyter笔记本本身。这样你就不需要将图片单独保存在文件夹中。

步骤:

将单元格转换为markdown: 在选中的单元格上按M 或 从菜单栏,单元格>单元格类型> Markdown。 (注意:重要的是将单元格转换为Markdown,否则步骤2中的“插入图像”选项将不起作用) 现在转到菜单栏,选择编辑->插入图像。 从磁盘中选择图像并上传。 按“Ctrl+Enter”或“Shift+Enter”。

这将使图像作为笔记本的一部分,你不需要在目录或Github上传。我觉得这看起来更干净,不容易破碎的URL问题。

我发现的一件事是,你的图像的路径必须是相对于笔记本电脑最初加载的地方。如果你cd到一个不同的目录,如图片,你的Markdown路径仍然相对于原始加载目录。