Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从本地机器或网络资源将图像或图片嵌入jupyter笔记本?_Python_Python 3.x_Image_Jupyter Notebook_Jupyter - Fatal编程技术网

Python 如何从本地机器或网络资源将图像或图片嵌入jupyter笔记本?

Python 如何从本地机器或网络资源将图像或图片嵌入jupyter笔记本?,python,python-3.x,image,jupyter-notebook,jupyter,Python,Python 3.x,Image,Jupyter Notebook,Jupyter,我想在jupyter笔记本中包含图像 如果我做到了以下几点,它就会起作用: from IPython.display import Image Image("img/picture.png") 但是我想将图像包含在一个标记单元格中,下面的代码给出了一个404错误: ![title]("img/picture.png") 我也试过了 ![texte]("http://localhost:8888/img/picture.png") 但我还是得到了同样的错误: 404 GET /noteboo

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

如果我做到了以下几点,它就会起作用:

from IPython.display import Image
Image("img/picture.png")
但是我想将图像包含在一个标记单元格中,下面的代码给出了一个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笔记本中发布图像:

通过HTML: 您可以保留使用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(url='https://i.ytimg.com/vi/j22DmsZEv30/maxresdefault.jpg', width=1900, unconfined=True))
或通过降价:
  • 请确保该单元格是标记单元格,而不是代码单元格,谢谢@游凯超 (在评论中)
  • 请注意,在某些系统上,标记不允许在文件名中使用空格。感谢评论中的@CoffeeTableEspresso和@zebralamy)
    (在macos上,只要您在标记单元格中,您就会这样做:
    ![title](../image 1.png)
    ,不必担心空白)
对于网络图像:

![Image of Yaktocat](https://octodex.github.com/images/yaktocat.png)
![title](img/picture.png)
如@cristianmtr所示 注意不要在url周围使用这些引号

或本地的:

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

由@Sebastian演示,以下是如何通过降价实现:

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

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

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

你必须换线

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

更新


假设您具有以下文件结构,并且在文件
example.ipynb
所在的目录中运行
jupyter notebook
命令(如果您想使用jupyter notebook API(而不是IPython API),我找到Jupyter的子项目。您有一个
图像
小部件。Docstring指定您有一个
参数,它是一个字节。因此您可以执行以下操作:

导入请求
从ipywidgets导入图像
Image(value=requests.get('https://octodex.github.com/images/yaktocat.png)。内容)

我同意,使用降价样式更简单。但它显示了图像显示笔记本API。您还可以使用
宽度
高度
参数调整图像大小。

这里是一个JupyterPython3的解决方案:

我将图像放在名为
ImageTest
的文件夹中。 我的目录是:

C:\Users\MyPcName\ImageTest\image.png
为了显示图像,我使用了以下表达式:

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

还要注意
/
\

或者,您可以使用普通HTML
,它允许您更改高度和宽度,并且仍由标记解释器读取:

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

我很惊讶这里没有人提到html单元格魔术选项。 来自(IPython,但Jupyter也是如此)

%%html

Render the cell as a block of HTML

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

![](files/picture.png)

除了使用HTML的其他答案(标记或使用
%%HTML
magic:

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

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

我知道这不是完全相关的,但是因为当你在“Juyter”中搜索“如何显示图像”时,这个答案是排在第一位的,所以请考虑这个答案。 可以使用matplotlib显示图像,如下所示

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
image = mpimg.imread("your_image.png")
plt.imshow(image)
plt.show()

我发现的一点是,您的图像路径必须与最初加载笔记本的位置相对。如果您将cd刻录到其他目录(如图片),则您的标记路径仍然与原始加载目录相对。

将图像直接插入Jupyter笔记本。 注意:您的计算机上应该有图像的本地副本

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

步骤:

![Image of Yaktocat](https://octodex.github.com/images/yaktocat.png)
![title](img/picture.png)
  • 通过以下方式将单元格转换为
    markdown

    • 在所选单元格上按M

    • 从菜单栏,单元格>单元格类型>标记。
      注意:将单元格转换为标记很重要,否则步骤2中的“插入图像”选项将不起作用)
  • 现在转到菜单栏并选择编辑->插入图像

  • 从磁盘中选择图像并上载

  • 按Ctrl+Enter或Shift+Enter

  • 这将使图像成为笔记本的一部分,您不需要在目录或Github中上载。我觉得这看起来更干净,不容易出现URL中断问题

  • 将单元格模式设置为降价
  • 将图像拖放到单元格中。将创建以下命令:
  • ![image.png](附件:image.png)

  • 执行/运行单元格,图像就会显示出来
  • 该图像实际上嵌入在ipynb笔记本中,您不需要处理单独的文件。不幸的是,Jupyter Lab(v1.1.4)还不能使用该图像


    编辑:在JupyterLab 1.2.6版中工作同意,我有相同的问题,这是有效的和无效的:

    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"/>*
    
    工作:
    *不起作用:
    不起作用:*
    
    虽然上面的许多答案都给出了使用文件或Python代码嵌入图像的方法,但有一种方法可以仅使用markdown和base64将图像嵌入jupyter笔记本本身

    要在浏览器中查看图像,您可以访问以下链接:
    data:image/png;base64,**此处的图像数据**
    以查看base64编码的png图像,或访问
    data:image/jpg;base64**