如果执行以下操作,则它可以工作:
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
#1 楼
在markdown中,请勿在图像文件的名称周围使用引号!如果您仔细阅读错误消息,则在链接中将看到两个
%22
部分。那是html编码的引号。 您必须更改行
![title]("img/picture.png")
到
![title](img/picture.png)
UPDATE
假定您具有以下文件结构,并在存储文件
jupyter notebook
(<-包含图像的标记)的目录中运行example.ipynb
命令:/
+-- example.ipynb
+-- img
+-- picture.png
#2 楼
有几种方法可以在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))
或通过markdown:
确保单元格是markdown单元格,而不是代码单元格,感谢@游凯超在评论中)
请注意,在某些系统上,降价标记不允许在文件名中使用空格。感谢注释中的@CoffeeTableEspresso和@zebralamy)
(在macOS上,只要您位于降价单元格上,您就会这样:
![title](../image 1.png)
,而不用担心空白)。用于网络图像:
![Image of Yaktocat](https://octodex.github.com/images/yaktocat.png)
,如@cristianmtr所示。
请注意不要使用这些引号
""
或URL周围的那些''
。或本地的:
![title](img/picture.png)
由@Sebastian演示
评论
的确,调整图片大小的可能性很有趣。但是对于将来的渲染,降价对我来说更好。
– Ger
2015年9月3日在8:54
您可以通过markdown放置具有绝对路径的本地路径吗?我试过了,但似乎没有用。编辑:Firefox(和Chrome)不允许访问本地文件以确保安全
–西门人Tomoiagă
17-10-19在12:03
@SwimBikeRun,您应该选择正确的单元格类型。您当前的单元格类型必须是代码
–youkaichao
18年7月31日在13:00
被低估的答案。很彻底
–内森(Nathan)
19年7月2日在19:07
markdown版本不允许文件名中的空格,对于遇到此问题的任何人
–CoffeeTableEspresso
20年4月13日,0:37
#3 楼
或者,您可以使用纯HTML<img src>
,它允许您更改高度和宽度,并且仍由markdown解释器读取:<img src="subdirectory/MyImage.png" width=60 height=60 />
评论
大!我非常喜欢这个答案,因为我们可以控制输出大小!例如,在使用pelican工具将jupyter笔记本发布为静态html页面时,这一点很重要。
–斯文
16-10-19在6:32
HTML不需要逗号-只需在属性之间放置一个空格-建议您在所有属性值周围加上引号,例如width =“ 60”。
–科林
18 Mar 1 '18 at 21:29
神圣的这太棒了
– Dheeraj M Pai
18年8月30日在11:41
是的,它很棒:),但是...该图像在PDF版本中丢失。太糟糕了。
–babou
20年6月9日在21:42
#4 楼
将图像直接插入Jupyter笔记本中。注意:您应该在计算机上拥有图像的本地副本
您可以将图像插入Jupyter笔记本中。这样,您无需将图像单独保存在文件夹中。
步骤:
将单元格转换为
markdown
的方法是:在选定单元格上按M
OR
从菜单栏中,单元格>单元格类型>减价。
(注意:将单元格转换为Markdown很重要,否则第2步中的“插入图片”选项将无效)
现在转到菜单栏并选择编辑->插入图像。
从磁盘中选择图像并上传。
按Ctrl + Enter或Shift + Enter。
这将使图像成为笔记本电脑的一部分,并您无需在目录或Github中上传。我觉得这看起来更干净,而且不容易出现URL损坏的问题。
评论
救了我!,谢谢
–穆罕默德·海达里(Mohammad Heydari)
19/12/30在7:53
Jupyter开发人员添加的另一个有用功能。要注意的一个不利条件是:在此情况下,该图像将包含在IPyNB Jason代码中,从而使其变得更大,并且不便于代码修订(例如,检查差异时)。
–eldad-a
20年4月30日在4:21
#5 楼
我知道这并不完全相关,但是由于在搜索“如何在Jupyter中显示图像”时,此答案在很多时候都排名第一,因此也请考虑此答案。您可以使用matplotlib如下显示图像。
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
image = mpimg.imread("your_image.png")
plt.imshow(image)
plt.show()
#6 楼
我很惊讶这里没有人提到html单元魔术选项。来自文档(IPython,但与Jupyter相同)
%% html
Render the cell as a block of HTML
#7 楼
除了使用HTML的其他答案(在Markdown中或使用%%HTML
magic):如果需要指定图像高度,则将无法使用:
<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
#8 楼
将单元格模式设置为Markdown
将图像拖放到单元格中。将创建以下命令:
![image.png](attachment:image.png)
执行/运行单元格,并显示图像。
图像实际上是嵌入在ipynb笔记本中的,您无需弄乱单独的文件。不幸的是,这还不适用于Jupyter-Lab(v 1.1.4)。
编辑:在JupyterLab 1.2.6版中可用
评论
是的,当我想下载HTML时,我得到了错误“ nbconvert失败:缺少附件:imagen.png”。为什么?
–efueyo
20-2-17在12:10
从剪贴板粘贴图像对我也适用(将单元格模式设置为Markdown后)
– CgodLEY
20年4月13日在16:37
#9 楼
使用Markdown的方法如下:![Image of Yaktocat](https://octodex.github.com/images/yaktocat.png)
评论
由于某些原因,通过markdown显示图像对我不起作用...您确定语法正确cristianmtr吗?
– Reblochon面膜
2015年9月3日在8:36
是的,再次测试一下。您确定将单元格设置为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
–cristianmtr
2015年9月3日在8:42
当心路径,本地有效不能在线工作,.e。 imgs \ pic.png在本地工作,在线则为1:区分大小写(Pic.png)2:后退和斜杠不同...:/ –
–智能基础设施
19年2月18日在13:53
在Python 3.8中效果很好。谢谢
–詹姆斯·坎贝尔
20年4月1日在18:20
如果其他人遇到此问题,则在文件名中不允许使用空格作为降价标记
–CoffeeTableEspresso
20年4月13日在0:38
#10 楼
如果要使用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
参数调整图像的大小。评论
同时似乎选项值已重命名为数据。对于本地存储的图像,代码Image(data = open(filename_png,'rb')。read())为我工作。
– jottbe
19-10-3在21:30
#11 楼
这是Jupyter和Python3的解决方案:我将图像拖放到名为
ImageTest
的文件夹中。 我的目录是:
C:\Users\MyPcName\ImageTest\image.png
为了显示图像,我使用了以下表达式:
![title](/notebooks/ImageTest/image.png "ShowMyImage")
还要注意
/
和\
评论
这仅对我有效。谢谢! “ ShowMyImage”的工作原理很吸引人!
–普兰策尔
19/12/17在7:07
#12 楼
这在降价单元中对我有用。无论如何,如果图像或简单文件,我都无需特别提及。![](files/picture.png)
评论
与塞巴斯蒂安·斯蒂格勒的答案有何不同?
– M.Innat
18年8月16日在19:42
只是想强调一下它对我有用,而没有在方括号中包含标题。没什么
–普拉纳夫·潘迪特(Pranav Pandit)
18年9月7日在18:03
#13 楼
我发现的一件事是,图像的路径必须相对于笔记本最初加载的位置。如果您将CD转到其他目录,例如“图片”,则Markdown路径仍相对于原始加载目录。#14 楼
尽管上面的许多答案都提供了使用文件或Python代码嵌入图像的方法,但是有一种方法可以仅使用markdown和base64将图像嵌入jupyter笔记本本身!要查看图片在浏览器中,您可以访问链接
data:image/png;base64,**image data here**
获取base64编码的PNG图像,或者访问data:image/jpg;base64,**image data here**
获取base64编码的JPG图像。在此答案的末尾可以找到一个示例链接。要将其嵌入到markdown页面中,只需使用与文件答案相似的结构,但要使用base64链接:
![**description**](data:image/**type**;base64,**base64 data**)
。现在,您的图像已100%嵌入到Jupyter Notebook文件中了!示例链接:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAD9JREFUGJW1jzEOADAIAqHx/1+mE4ltNXEpI3eJQknCIGsiHSLJB+aO/06PxOo/x2wBgKR2jCeEy0rOO6MDdzYQJRcVkl1NggAAAABJRU5ErkJggg==
示例降价:
![smile](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAD9JREFUGJW1jzEOADAIAqHx/1+mE4ltNXEpI3eJQknCIGsiHSLJB+aO/06PxOo/x2wBgKR2jCeEy0rOO6MDdzYQJRcVkl1NggAAAABJRU5ErkJggg==)
#15 楼
同意,我遇到了同样的问题,这是行得通的,而行不通的是:WORKED: <img src="Docs/pinoutDOIT32devkitv1.png" width="800"/>
*DOES NOT WORK: <img src="/Docs/pinoutDOIT32devkitv1.png" width="800"/>
DOES NOT WORK: <img src="./Docs/pinoutDOIT32devkitv1.png" width="800"/>*
评论
对我来说,以html格式下载笔记本时,这不起作用。它显示了损坏的图像链接。使用IPython.display.Image可以正常工作。
– joelostblom
16-2-9在23:54
@cheflo上面的语法不会将图像嵌入html文件中。如果您查看html文件的源代码,则会找到类似的条目。要查看图片,您必须将其复制到img相对文件夹中到html文件中。
–塞巴斯蒂安·斯蒂格勒(Sebastian Stigler)
16-2-15在8:46
我怀疑情况就是如此,感谢您的澄清。我认为这两种方法之间的差异是出乎意料的,至少对于我来说,确定了选择哪种方法,因此我想引起注意。
– joelostblom
16-2-15在18:30
通过markdown进行操作时,请确保图像文件位于笔记本计算机所在的目录中,出于某些奇怪的原因(以我为例),jupyter-notebook未被说服在完整路径上起作用...![title](picture .png)
–阿伦·库马尔·哈特里(Arun Kumar Khattri)
16 Jun 16'在4:46
@ArunKumarKhattri-有相同的问题,只有笔记本的重复路径有效-就我而言:![title](../ img / picture.png)
–ohad edelstain
17年8月16日在6:28