web-dev-qa-db-ger.com

Wie binde ich ein Bild oder eine Grafik in ein Jupyter-Notizbuch ein, entweder von einem lokalen Computer oder von einer Webressource?

Ich möchte ein Bild in ein Jupyter-Notizbuch einfügen.

Wenn ich das Folgende mache, funktioniert es:

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

Aber ich möchte die Bilder in eine Markdown-Zelle einfügen und der folgende Code gibt einen 404-Fehler aus:

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

Ich habe es auch versucht

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

Aber ich bekomme immer noch den gleichen Fehler:

404 GET /notebooks/%22/home/user/folder/img/picture.png%22 (127.0.0.1) 2.74ms referer=http://localhost:8888/notebooks/notebook.ipynb
241
Ger

Sie dürfen in markdown keine Anführungszeichen um den Namen der Bilddateien setzen!

Wenn Sie Ihre Fehlermeldung sorgfältig gelesen haben, sehen Sie die beiden Teile %22 im Link. Das ist das HTML-codierte Anführungszeichen.

Sie müssen die Zeile ändern

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

zu

![title](img/picture.png)

UPDATE

Es wird davon ausgegangen, dass Sie die folgende Dateistruktur haben und den Befehl jupyter notebook in dem Verzeichnis ausführen, in dem die Datei example.ipynb (<- enthält die Markierung für das Bild) gespeichert ist:

/
+-- example.ipynb
+-- img
    +-- picture.png
242

Es gibt verschiedene Möglichkeiten, ein Bild in Jupyter-Notizbüchern zu veröffentlichen:

über HTML:

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

Sie behalten die Möglichkeit, HTML-Tags zum Ändern der Größe usw. zu verwenden.

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

Sie können auch lokal gespeicherte Bilder entweder über den relativen oder den absoluten Pfad anzeigen.

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

Wenn das Bild breiter ist als die Anzeigeeinstellungen: danke

verwenden Sie unconfined=True, um die maximale Bildbreite zu deaktivieren

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

oder per Abschrift:

(Stellen Sie sicher, dass die Zelle eine Markdown-Zelle und keine Code-Zelle ist, danke @ 游 游 超 in den Kommentaren)

für ein Webbild:

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

achten Sie darauf, weder diese Anführungszeichen "" noch diese '' um die URL zu verwenden.

oder eine lokale:

![title](img/picture.png)

demonstriert von @Sebastian

175

Alternativ können Sie auch ein einfaches HTML <img src> verwenden, mit dem Sie Höhe und Breite ändern können und das weiterhin vom Markdown-Interpreter gelesen wird:

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

Ich bin überrascht, dass hier niemand die HTML-Option "cell magic" erwähnt hat. from the docs (IPython, aber dasselbe für Jupyter)

%% html

Render the cell as a block of HTML
16
Malik A. Rumi

Zusätzlich zu den anderen Antworten mit HTML (entweder in Markdown oder mit der Magie %%HTML:

Wenn Sie die Bildhöhe angeben müssen, funktioniert dies nicht:

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

Dies liegt daran, dass das CSS-Styling in Jupyter standardmäßig height: auto für die img -Tags verwendet, wodurch das HTML-Attribut height überschrieben wird. Sie müssen stattdessen das CSS-Attribut height überschreiben:

<img src="image.png" style="height:50px"> <-- works
13
Haffael

Ich weiß, dass dies nicht ganz relevant ist, aber da diese Antwort bei der Suche nach "wie man Bilder in Jupyter anzeigt" oft an erster Stelle steht, sollten Sie auch diese Antwort berücksichtigen.

Sie können matplotlib verwenden, um ein Bild wie folgt anzuzeigen.

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

So können Sie es mit Markdown machen:

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

Wenn Sie die Jupyter Notebook-API verwenden möchten (und nicht mehr die IPython-API), finde ich das Unterprojekt ipywidgets Jupyters. Sie haben ein Image Widget. Docstring gibt an, dass Sie einen value -Parameter haben, der ein Byte ist. Sie können also Folgendes tun:

import requests
from ipywidgets import Image

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

Ich stimme zu, es ist einfacher, den Markdown-Stil zu verwenden. Aber es zeigt Ihnen die Image Display Notebook API. Sie können die Größe des Bildes auch mit den Parametern width und height ändern.

9
dag

Hier ist eine Lösung für Jupyter und Python:

Ich habe meine Bilder in einem Ordner namens ImageTest abgelegt. Mein Verzeichnis ist:

_C:\Users\MyPcName\ImageTest\image.png
_

Um das Bild zu zeigen, habe ich diesen Ausdruck benutzt:

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

Achten Sie auch auf / und \

6
BlindSide

Das funktioniert bei mir in einer Abschriftenzelle. Irgendwie muss ich nicht speziell erwähnen, ob es sich um ein Bild oder eine einfache Datei handelt.

![](files/picture.png)
4
Pranav Pandit

Eine Sache, die ich gefunden habe, ist, dass der Pfad Ihres Bildes relativ zu dem Speicherort sein muss, von dem das Notebook ursprünglich geladen wurde. Wenn Sie in ein anderes Verzeichnis wie Bilder wechseln, ist Ihr Markdown-Pfad immer noch relativ zum ursprünglichen Ladeverzeichnis.

1
cybervigilante

Fügen Sie das Bild direkt in das Jupyter-Notizbuch ein.

Hinweis: Sie sollten eine lokale Kopie des Bildes auf Ihrem Computer haben

Sie können das Bild in das Jupyter-Notizbuch selbst einfügen. Auf diese Weise müssen Sie das Bild nicht separat im Ordner aufbewahren.

Schritte:

  1. Konvertieren Sie die Zelle in markdown mit:

    • drücken Sie M in der ausgewählten Zelle
      ODER
    • Klicken Sie in der Menüleiste auf Zelle> Zelltyp> Abschrift.
      (Hinweis: Es ist wichtig, die Zelle in Markdown umzuwandeln, da sonst die Option "Bild einfügen" in Schritt 2 nicht aktiv ist.)
  2. Gehen Sie nun in die Menüleiste und wählen Sie Bearbeiten -> Bild einfügen.

  3. Wählen Sie ein Bild von Ihrer Festplatte und laden Sie es hoch.

  4. Drücken Sie Ctrl+Enter oder Shift+Enter.

Dadurch wird das Bild als Teil des Notizbuchs erstellt und Sie müssen es nicht in das Verzeichnis oder Github hochladen. Ich denke, dies sieht sauberer aus und ist nicht anfällig für fehlerhafte URL-Probleme.

0
Gaurav Modi