Comment inclure une image dans le carnet de notes de jupyter

j'aimerais inclure une image dans un carnet jupyter.

si j'ai fait ce qui suit, ça marche:

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

mais je voudrais inclure les images dans une cellule markdown et le code suivant donne une erreur 404:

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

j'ai aussi essayé

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

Mais j'obtiens toujours la même erreur :

404 GET /notebooks/%22/home/user/folder/img/picture.png%22 (127.0.0.1) 2.74ms referer=http://localhost:8888/notebooks/notebook.ipynb
154
demandé sur Reblochon Masque 2015-09-03 11:09:58

9 réponses

vous ne devez pas utiliser de guillemets autour du nom des fichiers image dans markdown!

si vous lisez attentivement votre message d'erreur, vous verrez les deux parties %22 dans le lien. C'est la marque de citation codée html.

vous devez changer la ligne

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

à

![title](img/picture.png)

mise à JOUR

Il est supposé, que vous avez la suivant la structure du fichier et que vous exécutez la commande jupyter notebook dans le répertoire où le fichier example.ipynb (<--contient le markdown pour l'image) est stocké:

/
+-- example.ipynb
+-- img
    +-- picture.png
154
répondu Sebastian Stigler 2018-07-30 17:12:27

il y a plusieurs façons de poster une image dans les carnets Jupyter:

via HTML:

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

vous conservez la possibilité d'utiliser des balises HTML pour redimensionner, etc...

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

vous pouvez également afficher des images stockées localement, soit via le chemin relatif ou absolu.

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

si l'image est plus large que les paramètres d'affichage: merci

utiliser unconfined=True pour désactiver le confinement de largeur maximale de l'image

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

ou via markdown:

(assurez-vous que la cellule est une cellule de markdown, et pas une cellule de code, merci @փ dans les commentaires)

pour une image web:

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

comme le montre @cristianmtr Attention à ne pas utiliser ces guillemets "" ou ceux '' autour de l'url.

ou un local:

![title](img/picture.png)

démontré par @Sebastian

109
répondu Reblochon Masque 2018-07-31 13:03:01

alternativement, vous pouvez utiliser un HTML simple <img src> , qui vous permet de changer la hauteur et la largeur et est toujours lu par l'interpréteur markdown:

<img src="subdirectory/MyImage.png",width=60,height=60>
39
répondu Alistair 2017-06-08 22:21:03

Voici comment vous pouvez le faire avec Markdown:

![Image of Yaktocat](https://octodex.github.com/images/yaktocat.png)
9
répondu cristianmtr 2015-09-03 08:29:41

si vous voulez utiliser L'API de bloc-notes de Jupyter (et non plus celle D'IPython), je trouve le ipywidgets sous-projet de Jupyter. Vous avez un widget Image . Docstring spécifie que vous avez un paramètre value qui est un byte. Donc vous pouvez faire:

import requests
from ipywidgets import Image

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

je suis d'accord, c'est plus simple d'utiliser le style Markdown. Mais il vous montre L'API D'affichage D'image Bloc-notes. Vous pouvez également redimensionner l'image avec le width et height paramètres.

8
répondu dag 2016-01-26 23:23:25

je suis surpris que personne ici n'ait mentionné l'option magique de la cellule html. de la docs (IPython, mais même pour Jupyter)

% % html

Render the cell as a block of HTML
8
répondu Malik A. Rumi 2016-10-22 16:19:45

Voici une Solution pour Jupyter et Python3 :

j'ai déposé mes images dans un dossier nommé ImageTest . Mon répertoire est:

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

pour montrer l'image que j'ai utilisé cette expression:

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

aussi attention à / et \

4
répondu BlindSide 2016-03-27 22:30:23

ça marche pour moi dans une cellule de markdown. D'une façon ou d'une autre, je n'ai pas besoin de mentionner spécifiquement si c'est une image ou un simple fichier.

![](files/picture.png)
3
répondu Pranav Pandit 2017-12-06 23:39:21

en plus des autres réponses en utilisant HTML (soit dans Markdown ou en utilisant le %%HTML magic:

si vous devez spécifier la hauteur de l'image, cela ne fonctionnera pas:

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

c'est parce que le style CSS de Jupyter utilise height: auto par défaut pour les tags img , qui l'emporte sur L'attribut HTML height. Vous devez écraser l'attribut CSS height à la place:

<img src="image.png" style="height:50px"> <-- works
3
répondu Haffael 2018-01-16 20:16:08