Je voudrais inclure l'image dans un cahier Jupyter.
Si je fais ce qui suit, ça marche:
from IPython.display import Image
Image("img/picture.png")
Mais je voudrais inclure les images dans une cellule de démarque et le code suivant donne une erreur 404:
![title]("img/picture.png")
J'ai aussi essayé
![texte]("http://localhost:8888/img/picture.png")
Mais je reçois 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
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 le guillemet codé en html.
Vous devez changer la ligne
![title]("img/picture.png")
à
![title](img/picture.png)
UPDATE
Il est supposé que vous avez la structure de fichier suivante et que vous exécutez la commande jupyter notebook
dans le répertoire où le fichier example.ipynb
(<- contient le démarquage de l’image) est stocké:
/
+-- example.ipynb
+-- img
+-- picture.png
Il existe plusieurs façons de publier une image dans les cahiers Jupyter:
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, via un 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
utilisez unconfined=True
pour désactiver le confinement de l’image en largeur maximale
from IPython.core.display import Image, display
display(Image('https://i.ytimg.com/vi/j22DmsZEv30/maxresdefault.jpg', width=1900, unconfined=True))
(assurez-vous que la cellule est une cellule de démarque, et non une cellule de code, merci @ 游 dans les commentaires)
pour une image Web:
![Image of Yaktocat](https://octodex.github.com/images/yaktocat.png)
comme indiqué par @cristianmtr En faisant attention à ne pas utiliser ces guillemets ""
ni ceux ''
autour de l'URL.
ou local:
![title](img/picture.png)
démontré par @Sebastian
Vous pouvez également utiliser un code HTML brut <img src>
, qui vous permet de modifier la hauteur et la largeur et est toujours lu par l'interpréteur de démarques:
<img src="subdirectory/MyImage.png",width=60,height=60>
Je suis surpris que personne ici n'ait mentionné l'option magique de cellule html. depuis le docs (IPython, mais pareil pour Jupyter)
%% html
Render the cell as a block of HTML
Outre les autres réponses utilisant HTML (soit dans Markdown, soit à l'aide de la magie %%HTML
:
Si vous devez spécifier la hauteur de l'image, cela ne fonctionnera pas:
<img src="image.png" height=50> <-- will not work
En effet, le style CSS de Jupyter utilise height: auto
par défaut pour les balises img
, qui remplace l'attribut HTML height. Vous devez plutôt remplacer l’attribut CSS height
:
<img src="image.png" style="height:50px"> <-- works
Je sais que cela n’est pas tout à fait pertinent, mais puisque cette réponse est classée première à de nombreuses reprises lorsque vous effectuez une recherche 'comment afficher des images dans Jupyter', réfléchissez également à cette réponse.
Vous pouvez utiliser matplotlib pour afficher une image comme suit.
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
image = mpimg.imread("your_image.png")
plt.imshow(image)
plt.show()
Voici comment vous pouvez le faire avec Markdown:
![Image of Yaktocat](https://octodex.github.com/images/yaktocat.png)
Si vous voulez utiliser l'API Jupyter Notebook (et non celle IPython), je trouve le sous-projet ipywidgets Jupyter. Vous avez un widget Image
. Docstring spécifie que vous avez un paramètre value
qui est un octet. Alors tu peux faire:
import requests
from ipywidgets import Image
Image(value=requests.get('https://octodex.github.com/images/yaktocat.png').content)
Je suis d'accord, il est plus simple d'utiliser le style Markdown. Mais il vous montre l’API Notebook Notebook. Vous pouvez également redimensionner l'image avec les paramètres width
et height
.
Voici une solution pour Jupyter et Python:
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, j'ai utilisé cette expression:
_![title](/notebooks/ImageTest/image.png "ShowMyImage")
_
Surveillez également /
et \
Cela fonctionne pour moi dans une cellule de démarques. D'une manière 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)
Une chose que j'ai trouvée est que le chemin de votre image doit être relatif à l'endroit d'où le cahier a été initialement chargé. si vous vous connectez à un autre répertoire, tel que Images, votre chemin de Markdown reste relatif par rapport au répertoire de chargement d'origine.
Remarque: vous devriez avoir une copie locale de l'image sur votre ordinateur
Vous pouvez insérer l'image dans le bloc-notes Jupyter lui-même. De cette façon, vous n'avez pas besoin de conserver l'image séparément dans le dossier.
Étapes:
Convertissez la cellule en markdown
en:
Maintenant, allez dans la barre de menu et sélectionnez Édition -> Insérer une image.
Sélectionnez une image sur votre disque et téléchargez-la.
Presse Ctrl+Enter ou Shift+Enter.
Cela rendra l'image dans le cahier et vous n'aurez pas besoin de télécharger dans le répertoire ou Github. Je pense que cela semble plus propre et non sujet à un problème d'URL cassé.