Ich möchte ein Bild in ein Jupyter-Notizbuch aufnehmen.
Wenn ich Folgendes getan habe, funktioniert es:
from IPython.display import Image
Image("img/picture.png")
Ich möchte die Bilder jedoch in eine Markdown-Zelle aufnehmen, 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
IPython.display.Image
funktioniert wie erwartet.img
relativ zur HTML-Datei kopieren .![title](picture.png)
Es gibt verschiedene Möglichkeiten, ein Bild in Jupyter-Notizbüchern zu veröffentlichen:
via HTML:
Sie behalten die Möglichkeit, HTML-Tags zum Ändern der Größe usw. zu verwenden.
Sie können auch lokal gespeicherte Bilder entweder über den relativen oder den absoluten Pfad anzeigen.
Wenn das Bild breiter als die Anzeigeeinstellungen ist: Danke
Verwenden Sie
unconfined=True
diese Option, um die Beschränkung der maximalen Breite des Bildes zu deaktivierenoder per Markdown:
(On macos, solange Sie auf einem Abschlags Zelle sind Sie so tun würde:
![title](../image 1.png)
, und sich keine Sorgen über den weißen Raum).für ein Webbild:
wie von @cristianmtr gezeigt Achten Sie darauf, weder diese Anführungszeichen
""
noch die''
um die URL herum zu verwenden.oder eine lokale:
demonstriert von @Sebastian
quelle
Alternativ können Sie einen einfachen HTML-Code verwenden
<img src>
, mit dem Sie Höhe und Breite ändern können und der weiterhin vom Markdown-Interpreter gelesen wird:quelle
width="60"
.Ich weiß, dass dies nicht vollständig relevant ist, aber da diese Antwort bei der Suche nach "Anzeigen von Bildern in Jupyter " häufig an erster Stelle steht , sollten Sie auch diese Antwort berücksichtigen.
Sie können matplotlib verwenden, um ein Bild wie folgt anzuzeigen.
quelle
Ich bin überrascht, dass hier niemand die magische Option für HTML-Zellen erwähnt hat. aus den Dokumenten (IPython, aber das gleiche für Jupyter)
quelle
Zusätzlich zu den anderen Antworten mit HTML (entweder in Markdown oder mit der
%%HTML
Magie:Wenn Sie die Bildhöhe angeben müssen, funktioniert dies nicht:
Dies liegt daran, dass das CSS-Styling in Jupyter
height: auto
standardmäßig für dieimg
Tags verwendet wird, wodurch das HTML- Höhenattribut überschrieben wird. Sie müssenheight
stattdessen das CSS- Attribut überschreiben :quelle
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:
Konvertieren Sie die Zelle in
markdown
:ODER
( Hinweis: Es ist wichtig, die Zelle in Markdown zu konvertieren, da sonst die Option "Bild einfügen" in Schritt 2 nicht aktiv ist.)
Gehen Sie nun zur Menüleiste und wählen Sie Bearbeiten -> Bild einfügen.
Wählen Sie ein Bild von Ihrer Festplatte aus und laden Sie es hoch.
Drücken Sie Ctrl+ Enteroder 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.
quelle
Jupyter
. Ein Nachteil, der in Fällen zu beachten ist, in denen dies wichtig ist: Es würde das Bild in denIPyNB Jason
Code aufnehmen, wodurch es viel größer und nicht so Code-überarbeitungsfreundlich wird (z. B. bei der Überprüfung vondiff
s).So geht's mit Markdown:
quelle
![image.png](attachment:image.png)
Das Bild ist tatsächlich in das ipynb-Notizbuch eingebettet, und Sie müssen nicht mit separaten Dateien herumspielen. Dies funktioniert leider noch nicht mit Jupyter-Lab (v 1.1.4).
Bearbeiten: Funktioniert in JupyterLab Version 1.2.6
quelle
Markdown
Wenn Sie die Jupyter Notebook-API (und nicht mehr die IPython-API) verwenden möchten , finde ich das Unterprojekt der ipywidgets Jupyter. Sie haben ein
Image
Widget. Docstring gibt an, dass Sie einenvalue
Parameter haben, der ein Byte ist. So können Sie tun:Ich stimme zu, es ist einfacher, den Markdown-Stil zu verwenden. Es zeigt Ihnen jedoch die Notebook-API für die Bildanzeige. Sie können die Bildgröße auch mit den Parametern
width
und ändernheight
.quelle
value
umbenannt wurdedata
in der Zwischenzeit. Für ein lokal gespeichertes Bild hat der CodeImage(data=open(filename_png, 'rb').read())
für mich funktioniert.Hier ist eine Lösung für Jupyter und Python3 :
Ich habe meine Bilder in einem Ordner namens abgelegt
ImageTest
. Mein Verzeichnis ist:Um das Bild zu zeigen, habe ich diesen Ausdruck verwendet:
Achten Sie auch auf
/
und\
quelle
Dies funktioniert bei mir in einer Markdown-Zelle. Irgendwie muss ich nicht speziell erwähnen, ob es sich um ein Bild oder eine einfache Datei handelt.
quelle
Eine Sache, die ich gefunden habe, ist, dass der Pfad Ihres Bildes relativ zu dem Ort 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.
quelle
Einverstanden, ich hatte die gleichen Probleme und dies ist, was funktioniert hat und was nicht:
quelle
Während viele der obigen Antworten Möglichkeiten zum Einbetten eines Bildes mithilfe einer Datei oder mit Python-Code bieten, gibt es eine Möglichkeit, ein Bild nur mit Markdown und Base64 in das Jupyter-Notizbuch selbst einzubetten!
Um ein Bild im Browser anzuzeigen, können Sie den Link
data:image/png;base64,**image data here**
für ein Base64-codiertes PNG-Bild oderdata:image/jpg;base64,**image data here**
ein Base64-codiertes JPG-Bild aufrufen. Ein Beispiellink befindet sich am Ende dieser Antwort.Um dies in eine Markdown-Seite einzubetten, verwenden Sie einfach ein ähnliches Konstrukt wie die Antwort der Datei, jedoch mit einem base64-Link :
![**description**](data:image/**type**;base64,**base64 data**)
. Jetzt ist Ihr Bild zu 100% in Ihre Jupyter Notebook-Datei eingebettet!Beispiellink:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAD9JREFUGJW1jzEOADAIAqHx/1+mE4ltNXEpI3eJQknCIGsiHSLJB+aO/06PxOo/x2wBgKR2jCeEy0rOO6MDdzYQJRcVkl1NggAAAABJRU5ErkJggg==
Beispiel Abschlag:
![smile](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAD9JREFUGJW1jzEOADAIAqHx/1+mE4ltNXEpI3eJQknCIGsiHSLJB+aO/06PxOo/x2wBgKR2jCeEy0rOO6MDdzYQJRcVkl1NggAAAABJRU5ErkJggg==)
quelle