我想将图像包括在Jupyter笔记本中。
如果执行以下操作,则可以正常工作:
from IPython.display import Image
Image("img/picture.png")
但我想将图像包含在markdown单元格中,以下代码给出404错误:

我也试过

但是我仍然遇到同样的错误:
404 GET /notebooks/%22/home/user/folder/img/picture.png%22 (127.0.0.1) 2.74ms referer=http://localhost:8888/notebooks/notebook.ipynb
在markdown中,请勿在图像文件名称的前后加上引号!
如果您仔细阅读错误消息,您将在链接中看到两个%22部分。那是html编码的引号。
你必须换线

至

更新
假定您具有以下文件结构,并且您在存储文件example.ipynb(jupyter notebook命令:
/
+-- example.ipynb
+-- img
+-- picture.png
对我来说,将笔记本下载为html时,这不起作用。它显示了损坏的图像链接。按预期使用IPython.display.Image。
@cheflo上面的语法不会将图像嵌入html文件中。如果查看html文件的源代码,则会找到类似
的条目。要查看图片,您必须将其复制到文件夹img的html文件中。
我怀疑情况就是如此,感谢您的澄清。我认为这两种方法之间的差异是出乎意料的,至少对于我来说,确定了选择哪种方法,因此我想引起注意。
通过markdown进行操作时,请确保图像文件位于笔记本计算机所在的目录中,出于某种奇怪的原因(在我的情况下),jupyter-notebook未被说服在完整路径上工作... 
当我执行或时,我得到的只是Annotation Examples并且没有图像。 pyplot_annotation.png与ipynb文件位于同一目录中。
我找到了解决我问题的答案:stackoverflow.com/questions/40527191/
@ArunKumarKhattri-有相同的问题,只有笔记本的重复路径有效-就我而言:
这不能按原样工作。要对此做出可靠的回答,需要对相对路径进行更多研究。
@javadba您可以指定您的问题吗?
问题是Jupyter机器上的本地路径将文件放置在何处,以便可以通过演示的方式对其进行访问?
@SergeyShcherbakov如果在笔记本所在的路径中运行jupyter notebook命令,则必须将图像放在名称为img的该路径的子目录中。
谢谢@SebastianStigler,它起作用了。将此详细信息添加到您的答案中将是很好的。
阿伦·库马尔·哈特里(Arun Kumar Khattri)说的很重要! Jupyter Notebook没有考虑完整路径。因此,它必须位于与内核相同的目录中,或者位于子目录中。但是,Id绝对建议您使用html语法,因为这样您就可以指定更多属性,例如图像的尺寸。
也请参阅@Reblochon Masque的第二个答案;它更彻底
有几种方法可以在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)
如果图像宽于显示设置:谢谢
使用unconfined=True禁用图像的最大宽度限制
from IPython.core.display import Image, display
display(Image('https://i.ytimg.com/vi/j22DmsZEv30/maxresdefault.jpg', width=1900, unconfined=True))
或通过降价:
(请确保该单元格是降价单元格,而不是代码单元格,谢谢@游凯超的评论)
对于网络图像:

如@cristianmtr所示
注意不要在URL中使用这些引号""或那些''。
或本地的:

由@Sebastian演示
的确,调整图片大小的可能性很有趣。但是对于将来的渲染,降价对我来说更好。
您可以通过markdown放置具有绝对路径的本地路径吗?我试过了,但似乎没有用。编辑:Firefox(和Chrome)不允许访问本地文件以确保安全
@CiprianTomoiag?你什么意思 ? chrome / ff可以显示本地文件
我的意思是,如果该路径不在启动jupyter的树下,则无法显示它。例如!tmp_img。我认为在某些情况下,我在chrome控制台中收到了一些权限警告
为什么不工作。做Yaktocat的图像时,我得到/ bin / sh:1:语法错误:"("意外
您能否具体说明您无法完成的工作?
@SwimBikeRun,您应该选择正确的单元格类型。您当前的单元格类型必须是代码
已经很长了,但是如果我的文件名包含空格怎么办?像test 1.png一样?
在macOS上,只要您位于降价单元中,您就会这样:,而不用担心空白-在Windows上,我不知道。
当心路径,在本地有效的方法无法在线使用,.e。 imgs\pic.png在本地工作,在线时为1:区分大小写(Pic.png)2:后退和斜杠不同...:/
被低估的答案。很彻底
另外,您可以使用纯HTML ,它允许您更改高度和宽度,并仍由markdown解释器读取:
大!我非常喜欢这个答案,因为我们可以控制输出大小!例如,当使用鹈鹕工具将jupyter笔记本发布为静态html页面时,这很重要。
HTML不需要逗号-只需在属性之间放置一个空格-并建议将所有属性值都用引号引起来,例如width="60"。
神圣的这太棒了
除了使用HTML的其他答案(在Markdown中或使用%%HTML魔术:
如果您需要指定图像高度,则将无法使用:
这是因为Jupyter中的CSS样式默认为img标签使用height: auto标记,该标记会覆盖HTML height属性。您需要改写CSS height属性:
我很惊讶这里没有人提到html cell magic选项。
来自文档(IPython,但与Jupyter相同)
%%html
Render the cell as a block of HTML
我知道这并不完全相关,但是由于当您搜索"如何在Jupyter中显示图像"时,此答案在很多时候都排在第一位,因此也请考虑此答案。
您可以使用matplotlib如下显示图像。
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
image = mpimg.imread("your_image.png")
plt.imshow(image)
plt.show()
如果要使用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。您还可以使用width和height参数调整图像的大小。
对于本地存储的图像,它将如何工作?
同时,选项value似乎已重命名为data。对于本地存储的图像,代码Image(data=open(filename_png, rb).read())为我工作。
使用Markdown的方法如下:

由于某些原因,通过markdown显示图像对我不起作用...您确定语法正确cristianmtr吗?
是的,再次测试一下。您确定将单元格设置为Markdown吗?另外,您正在使用哪个版本的IPython / Jupyter? Mine说:"笔记本电脑服务器的版本是4.0.4,并且运行在:Python 2.7.8(默认值,2014年6月30日,16:08:48)[MSC v.1500 64位(AMD64)]"结果的屏幕截图:i.imgur.com/4ISJFDE.png
当心路径,在本地有效的方法无法在线使用,.e。 imgs pic.png在本地工作,在线则为1:区分大小写(Pic.png)2:后退和斜杠不相同...:/ –
将图像直接插入Jupyter笔记本中。
注意:您应该在计算机上拥有图像的本地副本
您可以将图像插入Jupyter笔记本本身。这样,您无需将图像单独保存在文件夹中。
脚步:
通过以下方式将单元格转换为markdown:
在所选单元格上按M
要么
在菜单栏中,单元格>单元格类型>降价。
(注意:将单元格转换为Markdown很重要,否则,第2步中的"插入图片"选项将无效)
现在转到菜单栏,然后??选择编辑->插入图像。
从磁盘中选择图像并上传。
按Ctrl + Enter或Shift + Enter。
这将使图像成为笔记本的一部分,您无需在目录或Github中上传。我觉得这看起来更干净,而且不容易出现URL损坏的问题。
这是Jupyter和Python3的解决方案:
我将图像放在名为ImageTest的文件夹中。
我的目录是:
C:\Users\MyPcName\ImageTest\image.png
为了显示图像,我使用了以下表达式:

还要注意/和\
这在降价单元中对我有用。无论如何,如果图像或简单文件,我都无需特别提及。

与塞巴斯蒂安·斯蒂格勒斯的回答有何不同?
只是想强调一下它对我有用,而没有在方括号中包含标题。没什么
我发现的一件事是,图像的路径必须与笔记本计算机最初加载的位置有关。如果cd到其他目录,例如Pictures,则Markdown路径仍相对于原始加载目录。
将单元格模式设置为降价
将图像拖放到单元格中。将创建以下命令:

执行/运行单元格,图像出现。
该图像实际上是嵌入在ipynb笔记本中的,您无需弄乱单独的文件。不幸的是,这还不适用于Jupyter-Lab(v 1.1.4)。
本文介绍了在Jupyter笔记本中展示图像的各种方法,包括使用Markdown语法、HTML标签、Python代码及直接拖拽插入图像等技巧。
1230

被折叠的 条评论
为什么被折叠?



