Как встроить изображение или картинку в блокнот Jupyter, либо с локальной машины, либо с веб-ресурса?
Я хотел бы включить изображение в блокнот jupyter.
Если я сделал следующее, он работает:
from IPython.display import Image
Image("img/picture.png")
Но я хотел бы включить изображения в ячейку уценки, а следующий код дает ошибку 404:

Я также пробовал

Но я все равно получаю ту же ошибку:
404 GET /notebooks/%22/home/user/folder/img/picture.png%22 (127.0.0.1) 2.74ms referer=http://localhost:8888/notebooks/notebook.ipynb
Ответы
Ответ 1
Вы не должны использовать кавычки вокруг имени файлов изображений в уценке!
Если вы внимательно прочитаете свое сообщение об ошибке, вы увидите две части %22
в ссылке. Это кавычка в кодировке html.
Вы должны изменить линию

в

ОБНОВИТЬ
Предполагается, что у вас следующая файловая структура и что вы запускаете команду jupyter notebook
в каталоге, где хранится файл example.ipynb
(<- содержит уценку для изображения):
/
+-- example.ipynb
+-- img
+-- picture.png
Ответ 2
Есть несколько способов разместить изображение в блокнотах Jupyter:
через HTML:
from IPython.display import Image
from IPython.core.display import HTML
Image(url= "http://my_site.com/my_picture.jpg")
Вы сохраняете возможность использовать HTML-теги для изменения размера и т.д.
Image(url= "http://my_site.com/my_picture.jpg", width=100, height=100)
Вы также можете отображать изображения, хранящиеся локально, либо по относительному, либо по абсолютному пути.
PATH = "/Users/reblochonMasque/Documents/Drawings/"
Image(filename = PATH + "My_picture.jpg", width=100, height=100)
если изображение оно шире настроек дисплея: спасибо
используйте unconfined=True
чтобы отключить unconfined=True
максимальной ширины изображения
from IPython.core.display import Image, display
display(Image('https://i.ytimg.com/vi/j22DmsZEv30/maxresdefault.jpg', width=1900, unconfined=True))
или через уценку:
(убедитесь, что ячейка является ячейкой уценки, а не ячейкой кода, спасибо @游 凯 超 в комментариях)
для веб-изображения:

как показано @cristianmtr Обратите внимание, чтобы не использовать ни эти кавычки ""
ни те, ''
вокруг URL.
или локальный:

продемонстрировано @Sebastian
Ответ 3
В качестве альтернативы вы можете использовать простой HTML <img src>
, который позволяет изменять высоту и ширину и по-прежнему считываться интерпретатором уценки:
<img src="subdirectory/MyImage.png",width=60,height=60>
Ответ 4
Я удивлен, что никто здесь не упомянул опцию html cell magic.
из docs (IPython, но тот же для Jupyter)
%% HTML
Render the cell as a block of HTML
Ответ 5
В дополнение к другим ответам, используя HTML (либо в Markdown, либо используя %%HTML
magic:
Если вам нужно указать высоту изображения, это не будет работать:
<img src="image.png" height=50> <-- will not work
Это связано с тем, что CSS-стиль в Jupyter использует height: auto
по умолчанию для тегов img
, который переопределяет атрибут высоты HTML. Вам нужно переписать атрибут CSS height
вместо этого:
<img src="image.png" style="height:50px"> <-- works
Ответ 6
Я знаю, что это не совсем актуально, но так как этот ответ занимает первое место много раз при поиске "как отображать изображения в Jupyter", пожалуйста, рассмотрите этот ответ также.
Вы можете использовать matplotlib, чтобы показать изображение следующим образом.
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
image = mpimg.imread("your_image.png")
plt.imshow(image)
plt.show()
Ответ 7
Здесь вы можете сделать это с помощью Markdown:

Ответ 8
Если вы хотите использовать Jupyter Notebook API (а не IPython), я нахожу ipywidgets подпроект Jupyter, У вас есть виджет Image
. Docstring указывает, что у вас есть параметр value
, который является байтом. Итак, вы можете сделать:
import requests
from ipywidgets import Image
Image(value=requests.get('https://octodex.github.com/images/yaktocat.png').content)
Согласен, проще использовать стиль Markdown. Но он показывает вам API-интерфейс Note Display. Вы также можете изменить размер изображения с помощью параметров width
и height
.
Ответ 9
Вот решение для Jupyter и Python3:
Я поместил свои изображения в папку с именем ImageTest
.
Мой каталог:
C:\Users\MyPcName\ImageTest\image.png
Чтобы показать изображение, я использовал это выражение:

Также следите за /
и \
Ответ 10
Это работает для меня в ячейке уценки. Как-то мне не нужно упоминать конкретно, если это изображение или простой файл.

Ответ 11
Вставьте изображение прямо в блокнот Jupyter.
Примечание. На вашем компьютере должна быть локальная копия изображения
.Вы можете вставить изображение в блокнот Jupyter. Таким образом, вам не нужно хранить изображение отдельно в папке.
Шаги:
Преобразовать ячейку в markdown
с помощью:
- нажав M на выбранной ячейке
ИЛИ
-
В строке меню выберите Ячейка> Тип ячейки> Уценка.
(Примечание: Важно преобразовать ячейку в Markdown, иначе параметр "Вставить изображение" в шаге 2 не будет активен)
Теперь перейдите в строку меню и выберите "Правка" → "Вставить изображение".
Выберите изображение с вашего диска и загрузите.
Нажмите Ctrl + Enter или Shift + Enter.
Это сделает изображение частью ноутбука, и вам не нужно загружать его в каталог или на Github. Я чувствую, что это выглядит более чистым и не склонным к неправильной ссылке.
Ответ 12
Я обнаружил, что путь к вашему изображению должен быть относительно того места, откуда изначально была загружена записная книжка. если вы перейдете в другой каталог, такой как Pictures, ваш путь Markdown будет по-прежнему относительно исходного каталога загрузки.
Ответ 13
При работе с программными пакетами, которые я хотел бы продемонстрировать, я использую редактор Snagit, чтобы комментировать скриншот, затем копирую и вставляю изображение непосредственно из редактора в Jupyter...