Vorrei includere l'immagine in un taccuino jupyter.
Se ho fatto quanto segue, funziona:
from IPython.display import Image
Image("img/picture.png")
Ma vorrei includere le immagini in una cella markdown e il seguente codice dà un errore 404:

Ho anche provato

Ma ho ancora lo stesso errore:
404 GET /notebooks/%22/home/user/folder/img/picture.png%22 (127.0.0.1) 2.74ms referer=http://localhost:8888/notebooks/notebook.ipynb
Non è necessario utilizzare le virgolette attorno al nome dei file immagine in markdown!
Se leggi attentamente il tuo messaggio di errore, vedrai le due parti %22
nel link. Questa è la virgoletta codificata in html.
Devi cambiare la linea

a

AGGIORNARE
Si presuppone che tu abbia la seguente struttura di file e che tu esegua il comando jupyter notebook
nella directory in cui è memorizzato il file example.ipynb
(<- contiene il markdown per l'immagine):
/
+-- example.ipynb
+-- img
+-- picture.png
Esistono diversi modi per pubblicare un'immagine nei taccuini Jupyter:
from IPython.display import Image
from IPython.core.display import HTML
Image(url= "http://my_site.com/my_picture.jpg")
Manterrai la possibilità di utilizzare tag HTML per ridimensionarli, ecc ...
Image(url= "http://my_site.com/my_picture.jpg", width=100, height=100)
È inoltre possibile visualizzare le immagini memorizzate localmente, tramite percorso relativo o assoluto.
PATH = "/Users/reblochonMasque/Documents/Drawings/"
Image(filename = PATH + "My_picture.jpg", width=100, height=100)
se l'immagine è più ampia delle impostazioni di visualizzazione: grazie
usa unconfined=True
per disabilitare il confinamento della larghezza massima dell'immagine
from IPython.core.display import Image, display
display(Image('https://i.ytimg.com/vi/j22DmsZEv30/maxresdefault.jpg', width=1900, unconfined=True))
(assicurati che la cella sia una cella di markdown, e non una cella di codice, grazie @ 游 凯 超 nei commenti)
per un'immagine web:

come mostrato da @cristianmtr Prestando attenzione a non utilizzare queste virgolette ""
o quelle ''
attorno all'URL.
o locale:

dimostrato da @Sebastian
In alternativa, puoi usare un semplice <img src>
HTML, che ti permette di cambiare altezza e larghezza e viene letto ancora dall'interprete markdown:
<img src="subdirectory/MyImage.png",width=60,height=60>
Sono sorpreso che nessuno qui abbia menzionato l'opzione magica delle celle html. da docs (IPython, ma lo stesso per Jupyter)
%% html
Render the cell as a block of HTML
In aggiunta alle altre risposte usando l'HTML (in Markdown o usando la magia %%HTML
:
Se devi specificare l'altezza dell'immagine, questo non funzionerà:
<img src="image.png" height=50> <-- will not work
Questo perché lo stile CSS in Jupyter utilizza height: auto
per impostazione predefinita per i tag img
, che sovrascrivono l'attributo height HTML. Hai bisogno di sovrascrivere invece l'attributo height
CSS:
<img src="image.png" style="height:50px"> <-- works
Ecco come puoi farlo con Markdown:

Se si desidera utilizzare l'API di Jupyter Notebook (e non quella di IPython), trovo il ipywidgets sottoprogetto di Jupyter. Hai un widget Image
. Docstring specifica che hai un parametro value
che è un byte. Quindi puoi fare:
import requests
from ipywidgets import Image
Image(value=requests.get('https://octodex.github.com/images/yaktocat.png').content)
Sono d'accordo, è più semplice usare lo stile Markdown. Ma ti mostra l'API per notebook con display Image. È anche possibile ridimensionare l'immagine con i parametri width
e height
.
Ecco una soluzione per Jupyter e Python3 :
Ho lasciato cadere le mie immagini in una cartella chiamata ImageTest
. La mia directory è:
C:\Users\MyPcName\ImageTest\image.png
Per mostrare l'immagine ho usato questa espressione:

Fai attenzione anche a/
and\
So che questo non è del tutto pertinente, ma dal momento che questa risposta è classificata in primo luogo molte volte quando cerchi " come visualizzare le immagini in Jupyter ", considera anche questa risposta.
Potresti usare matplotlib per mostrare un'immagine come segue.
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
image = mpimg.imread("your_image.png")
plt.imshow(image)
plt.show()
Questo funziona per me in una cella di markdown. In qualche modo non ho bisogno di menzionare specificamente se si tratta di un'immagine o di un file semplice.

Una cosa che ho trovato è che il percorso della tua immagine deve essere relativo al luogo in cui il notebook è stato originariamente caricato. se si esegue il cd in una directory diversa, ad esempio Pictures, il percorso di Markdown è ancora relativo alla directory di caricamento originale.