Вставлення зображення в розмітку ноутбука IPython


217

Я починаю сильно залежати від програми для ноутбуків IPython для розробки та документування алгоритмів. Це приголомшливо; але є щось, що здається, що це має бути можливо, але я не можу зрозуміти, як це зробити:

Я хотів би вставити локальне зображення у свій (локальний) ноутбук IPython для розміщення, щоб допомогти в документуванні алгоритму. Я знаю достатньо, щоб додати щось на кшталт <img src="image.png">відмітки, але це приблизно настільки, наскільки я знаю. Я припускаю, що я міг би помістити зображення в каталог, представлений 127.0.0.1:8888 (або якийсь підкаталог), щоб мати доступ до нього, але не можу зрозуміти, де знаходиться цей каталог. (Я працюю над mac.) Отже, чи можна робити те, що я намагаюся зробити, без зайвих проблем?

Відповіді:


201

Файли всередині dir ноутбука доступні за URL-адресою "файли /". Отже, якщо він знаходиться в базовому шляху, це було б <img src="files/image.png">, і підкаталоги тощо також доступні: <img src="files/subdir/image.png">і т.д.

Оновлення : починаючи з IPython 2.0, files/префікс більше не потрібен (див. Примітки до випуску ). Тож тепер рішення <img src="image.png">просто працює так, як очікувалося.


3
Ах, ви, мабуть, використовуєте 0,12, чи не так? Обслуговування локальних файлів наразі доступне лише у програмі master. І так, "каталог блокнотів" - це каталог із блокнотами (файли .ipynb).
мінрк

107
Оскільки ви знаходитесь у відмітці, чому б не використати ![caption](files/image.png)?
kynan

4
@minrk: це не працює для мене. Я ставлю "<img src =" k.png ">", але він нічого не показує. k.png знаходиться в тій же папці, що і у файлі ноутбука.
Абід Рахман К

4
Будь ласка, перечитайте відповідь та коментарі. Ваш URL завжди починатиметься з "файли /", тож якщо у вас k.pngпоруч із ноутбуком, URL-адреса буде src="files/k.png".
minrk

2
Ви повинні оновити веб-сторінку для завантаження зображень із заданою URL-адресою.
minrk

230

Більшість наданих відповідей поки що йде в неправильному напрямку, пропонуючи завантажити додаткові бібліотеки і використовувати код замість розмітки. У ноутбуках Ipython / Jupyter це дуже просто. Переконайтесь, що клітинка справді розмічена, і для відображення зображення використовується

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

Наступна перевага порівняно з іншими запропонованими методами полягає в тому, що ви можете відображати всі поширені формати файлів, включаючи jpg, png та gif (анімації).


Цікаво, як ви знаєте цю команду. Це унікально для Юпітера чи це якась мова (форматування латексу, можливо), яку ви використовуєте в Jupyter, щоб додати зображення?
Алекс Г

1
@ Alex G, Markdown є мовою з синтаксисом форматування простого тексту, розробленим таким чином, що він може бути перетворений у HTML та багато інших форматів. Розмітка часто використовується для створення насиченого тексту за допомогою звичайного текстового редактора. Перевірте наступне посилання, щоб дізнатись синтаксис: github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet
Philipp Schwarz

@PhilippSchwarz Чи є кілька варіантів вашого прикладу вище, щоб контролювати розмір "вставленого" зображення? Використовуючи <img...>тег, такі параметри виглядають приблизно так <img ... width="480">.
Reb.Cabin

1
Використовуючи це, не вийшло. Блокнот шукав у певному місці / зошитах / <мій робочий шлях, доданий сюди> - напевно це не кореневий - і локальний шлях не існував. Мені було корисно просто використовувати зображення для вставки в ноутбук - це додало зображення як додаток (яке тепер є портативним).
Марк

2
Чи є спосіб використовувати цей метод з файлами зображень, які мають пробіл у своїх іменах?
зебраламія

78

Я використовую ipython 2.0, тому всього два рядки.

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

25
Це правильний спосіб відображення зображення в кодовій коді . Відповідь minrk - це правильний спосіб відображення зображення в клітинці розмітки .
Майк

3
Використовуючи зошит jupyter 4.2.0, він не відображає зображення, якщо я displayтеж не зателефоную : from IPython.display import Image, display; display(Image(filename='output1.png'))
Маттео Т.

22

[Застарілий]

Тепер IPython / Jupyter має підтримку модулів розширення, які можуть вставляти зображення за допомогою копіювання та вставлення або перетягування та перетягування.

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

Розширення перетягування та перетягування, здається, працює в більшості браузерів

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

Але копіювання та вставлення працює лише в Chrome.


1
Ця відповідь потребує деяких результатів. Дуже мало хто знає про розширення Ipython.
Торан

просто спробував перетягнути перетяжку в Safari та Chrome, не працює для мене (OSX, Py3, усі оновлення)
K.-Michael Aye

2
Друге посилання, яке ви опублікували, порушено - розширення більше не підтримується?
zthomas.nc

Я також більше не можу знайти розширення.
yerforkferchips

Так, Юпітер трохи змінився в останні три роки, і ця відповідь є досить застарілою.
Майк

18

Зображення в Jupyter NB - набагато простіша операція, ніж більшість людей на це натякає.

1) Просто створіть порожню комірку Markdown. 2) Потім перетягніть файл зображення у порожню клітинку Markdown.

Потім з'являється код розмітки, який буде вставляти зображення.

Наприклад, рядок, виділена сірим кольором нижче, з’явиться в комірці Юпітера:

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

3) Потім виконайте клітинку Markdown, натиснувши Shift-Enter. Сервер Юпітера потім вставить зображення, і зображення з'явиться.

У мене працює сервер ноутбуків Jupyter: 5.7.4 з Python 3.7.0 на Windows 7.

Це так просто !!


2
Це дійсно найкраще рішення, яке я знайшов !!
GCGM

На жаль, цей метод не працює, коли Jupyter Notebook версії 6.0 розміщується в Google Cloud. У когось є рішення, яке працює без привілеїв адміністратора, що-небудь, крім встановлення перетягування nbextension?
Багатий доктор фізичних наук Лісаковський

13

Я помістив ноутбук IPython у ту саму папку із зображенням. Я використовую Windows. Назва зображення - "phuong huong xac dinh.PNG".

У розмітці:

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

Код:

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

1
Довідка щодо документації ipython.readthedocs.io/en/stable/api/generated/… , хоча використання розмітки ( ![alt text](foo.png "the title")є кращим, якщо не потрібно використовувати додаткові аргументи з api.
michael

9

Спочатку переконайтеся, що ви знаходитесь у моделі редагування розмітки у комірці ноутбука ipython

Це альтернативний спосіб методу, запропонованому іншими <img src="myimage.png">:

![title](img/picture.png)

Також, здається, працює, якщо в заголовку відсутнє:

![](img/picture.png)

Зверніть увагу, жодні цитати не повинні знаходитись на шляху. Не впевнений, чи це працює для доріжок з білими пробілами!


1
Для мене зображення з білими пробілами в назві не відображалися в зошиті. Я видалив пробіли, я зараз можу бачити.
insanely_sin

9

Остання версія ноутбука "Юпітер" приймає копію / вставляння зображення в оригіналі


Я віддаю перевагу такому варіанту, оскільки він вбудовує зображення у бінарний ноутбук. Це робить ноутбук важчим, але вам не потрібно тримати зображення у відносному шляху.
Туліо Касагранде

8

Якщо ви хочете відобразити зображення в комірці Markdown, тоді використовуйте:

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

Якщо ви хочете відобразити зображення в комірці коду, тоді використовуйте:

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

У комірці <img src="files/image.png" width=800 height=400>
розмітки

це правда, що коми не потрібні в командах HTML. дивіться моє оновлення
seralouk

5

Змініть блок за замовчуванням з "Код" на "Відмітка" перед запуском цього коду:

![<caption>](image_filename.png)

Якщо файл зображення знаходиться в іншій папці, ви можете зробити наступне:

![<caption>](folder/image_filename.png)

4

Для тих, хто шукає, де розмістити файл зображень на машині Юпітера, щоб його можна було відобразити з локальної файлової системи.

Я поклав mypic.pngINTO

/root/Images/mypic.png

(тобто папка Зображення, яка відображається в веб-браузері файлів Jupyter)

У такому випадку мені потрібно помістити наступний рядок у комірку Markdown, щоб зробити свій малюнок у блокноті:

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

2

відповідь minrk правильна.

Однак я виявив, що зображення виглядають порушеними у програмі Print View (на моїй машині Windows, що працює у Anaconda, дистрибутив IPython версії 0.13.2 у браузері Chrome)

Вирішенням цього було скористатися <img src="../files/image.png">замість цього.

Це призвело до правильного відображення зображення як у Перегляді друку, так і у звичайному режимі редагування iPython.

ОНОВЛЕННЯ: на момент мого оновлення до iPython v1.1.0 більше немає потреби в цьому вирішенні, оскільки подання для друку більше не існує. Насправді, ви повинні уникати цього рішення, оскільки це заважає інструменту nbconvert знаходити файли.


-3

Ви можете знайти свій поточний робочий каталог за допомогою команди "pwd" у зошиті юпітера без лапок.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.