web-dev-qa-db-fra.com

Insertion d'une image dans le bloc-notes IPython

Je commence à dépendre énormément de l'application pour ordinateur portable IPython pour développer et documenter des algorithmes. C'est génial; mais il y a quelque chose qui semble être possible, mais je ne vois pas comment le faire:

Je souhaite insérer une image locale dans mon démarque-notes IPython pour aider à la documentation d'un algorithme. Je sais assez pour ajouter quelque chose comme <img src="image.png"> à la réduction, mais c'est à peu près autant que je le sache. Je suppose que je pourrais mettre l’image dans le répertoire représenté par 127.0.0.1:8888 (ou dans un sous-répertoire) pour pouvoir y accéder, mais je ne peux pas savoir où se trouve ce répertoire. (Je travaille sur un mac.) Alors, est-il possible de faire ce que j'essaie de faire sans trop de peine?

169
benpro

Les fichiers du répertoire notebook sont disponibles sous une URL "fichiers /". Donc, si c'est dans le chemin de base, ce serait <img src="files/image.png">, et les sous-répertoires, etc. sont également disponibles: <img src="files/subdir/image.png">, etc.

Mise à jour : à partir de IPython 2.0, le préfixe files/ n'est plus nécessaire (cf. notes de version ). Alors maintenant, la solution <img src="image.png"> fonctionne simplement comme prévu.

159
minrk

La plupart des réponses données jusqu'ici vont dans la mauvaise direction, suggérant de charger des bibliothèques supplémentaires et d'utiliser le code au lieu du balisage. Dans Ipython/Jupyter Notebooks, c'est très simple. Assurez-vous que la cellule est bien dans le balisage et pour afficher une utilisation de l'image:

![alt text](imagename.png "Title")

Un autre avantage par rapport aux autres méthodes proposées est que vous pouvez afficher tous les formats de fichiers courants, y compris jpg, png et gif (animations).

175
Philipp Schwarz

J'utilise ipython 2.0, donc juste deux lignes.

from IPython.display import Image
Image(filename='output1.png')
68
Gomes

[Obsolète]

IPython/Jupyter prend désormais en charge des modules d’extension permettant d’insérer des images par copier-coller ou glisser-déposer.

https://github.com/ipython-contrib/IPython-notebook-extensions

L'extension drag & drop semble fonctionner dans la plupart des navigateurs

https://github.com/ipython-contrib/IPython-notebook-extensions/tree/master/nbextensions/usability/dragdrop

Mais copier et coller ne fonctionne que dans Chrome.

19
Mike

J'ai mis le cahier IPython dans le même dossier que l'image. J'utilise Windows. Le nom de l'image est "phuong huong xac dinh.PNG".

Dans Markdown:

<img src="phuong huong xac dinh.PNG">

Code:

from IPython.display import Image
Image(filename='phuong huong xac dinh.PNG')
9
hydroman

Assurez-vous d'abord que vous êtes dans le modèle d'édition Markdown dans la cellule du bloc-notes ipython

C'est une manière alternative à la méthode proposée par d'autres <img src="myimage.png">:

![title](img/picture.png)

Cela semble également fonctionner si le titre est manquant:

![](img/picture.png)

Notez qu'aucune citation ne devrait être dans le chemin. Vous ne savez pas si cela fonctionne pour les chemins avec des espaces blancs!

7
tsando

La dernière version de jupyter notebook accepte les copier/coller d'images de manière native

6
Romain Jouin

Pour ceux qui cherchent où placer le fichier image sur la machine Jupyter afin qu’il puisse être affiché à partir du système de fichiers local.

Je mets mon mypic.png dans

/root/Images/mypic.png

(c’est le dossier Images qui apparaît dans le navigateur de fichiers en ligne Jupyter)

Dans ce cas, je dois insérer la ligne suivante dans la cellule Markdown pour que ma photo apparaisse dans le bloc-notes:

![My Title](Images/mypic.png)
3
Sergey Shcherbakov

la réponse de Minrk est juste.

Cependant, j'ai constaté que les images semblaient brisées en mode d'impression (sur ma machine Windows exécutant la distribution Anaconda d'IPython version 0.13.2 dans un navigateur Chrome).

La solution de contournement pour cela consistait à utiliser <img src="../files/image.png"> à la place.

Cela permettait à l'image de s'afficher correctement dans la vue d'impression et dans la vue d'édition normale d'iPython.

UPDATE: à compter de ma mise à niveau vers iPython v1.1.0, cette solution de contournement n'est plus nécessaire puisque la vue d'impression n'existe plus. En fait, vous devez éviter cette solution de contournement, car elle empêche l'outil nbconvert de rechercher les fichiers.

2
jlarchibald

Si vous souhaitez afficher l'image dans une Markdown cell, utilisez:

<img src="files/image.png" width="800" height="400">

Si vous souhaitez afficher l'image dans un Cellule Code, utilisez:

from IPython.display import Image
Image(filename='output1.png',width=800, height=400)
2
serafeim

Obtenir une image dans Jupyter NB est une opération beaucoup plus simple que celle évoquée ici par la plupart des gens.

1) Créez simplement une cellule de Markdown vide. 2) Faites ensuite glisser le fichier image dans la cellule Markdown vide.

Le code Markdown qui insérera l'image apparaîtra alors.

Par exemple, une chaîne montrée en gris ci-dessous apparaîtra dans la cellule Jupyter:

![Venus_flytrap_taxonomy.jpg](attachment:Venus_flytrap_taxonomy.jpg)

3) Ensuite, exécutez la cellule Markdown en appuyant sur Maj-Entrée. Le serveur Jupyter insérera alors l'image, puis l'image apparaîtra.

J'exécute le serveur Jupyter Notebook: 5.7.4 avec Python 3.7.0 sous Windows 7.

C'est si simple !!

2