IPython not defteri işaretlemesine resim ekleme


217

Algoritmaları geliştirmek ve belgelemek için IPython dizüstü bilgisayar uygulamasına büyük ölçüde bağımlı olmaya başlıyorum. Bu mükemmel; ancak mümkün olması gerektiği gibi görünen bir şey var, ancak nasıl yapılacağını anlayamıyorum:

Bir algoritmanın belgelenmesine yardımcı olmak için (yerel) IPython not defteri işaretlememe yerel bir görüntü eklemek istiyorum. <img src="image.png">İşaretlemeye benzer bir şey eklemek için yeterli biliyorum , ama bu benim bilgim kadar. Görüntüye erişmek için 127.0.0.1:8888 (veya bazı alt dizin) ile temsil edilen dizine koymak olabilir, ancak bu dizinin nerede olduğunu anlayamıyorum varsayalım. (Mac üzerinde çalışıyorum.) Peki, yapmaya çalıştığım şeyi çok fazla sorun olmadan yapmak mümkün mü?

Yanıtlar:


201

Not defteri dizininin içindeki dosyalar "files /" URL'si altında bulunur. Dolayısıyla, temel <img src="files/image.png">yoldaysa, olur ve alt dizinler de kullanılabilir: <img src="files/subdir/image.png">vb.

Güncelleme : IPython 2.0 ile başlayarak, files/önek artık gerekli değildir (bkz. Sürüm notları ). Şimdi çözüm <img src="image.png">beklendiği gibi çalışıyor.


3
Ah, muhtemelen 0.12 kullanıyorsunuz, değil mi? Yerel dosyaların sunulması şu anda yalnızca kalıpta kullanılabilir. Ve evet, "not defteri dizini" not defterlerinin bulunduğu dizindir (.ipynb dosyaları).
minrk

107
Markdown'da olduğunuz için neden kullanmıyorsunuz ![caption](files/image.png)?
kynan

4
@minrk: benim için çalışmıyor. "<İmg src =" k.png ">" koydum, ama hiçbir şey göstermiyor. k.png not defteri dosyasıyla aynı klasörde.
Abid Rahman K

4
Lütfen yanıtı ve yorumları tekrar okuyun. URL'niz her zaman 'dosyalar /' ile başlar, bu nedenle k.pngnot defterinizin yanında varsa URL olur src="files/k.png".
minrk

2
belirli bir URL'deki resimlerin yeniden yüklenebilmesi için bir web sayfasını yenilemeniz gerekir.
minrk

230

Şimdiye kadar verilen yanıtların çoğu yanlış yöne gidiyor ve ek kitaplıklar yüklemenizi ve kod yerine biçimlendirme yerine kullanılmasını öneriyor. Ipython / Jupyter Notebook'larda çok basit. Hücrenin gerçekten biçimlendirmede olduğundan ve bir görüntü kullanımı görüntülediğinden emin olun:

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

Önerilen diğer yöntemlere kıyasla bir diğer avantaj, jpg, png ve gif (animasyonlar) dahil olmak üzere tüm yaygın dosya formatlarını görüntüleyebilmenizdir.


Bu komutu nasıl bildiğini merak et. Jupyter'e özgü mü yoksa resim eklemek için Jupyter'de kullandığınız bir dil (belki de lateks formatlama) mı?
Alex G

1
@ Alex G, Markdown HTML ve diğer birçok biçime dönüştürülebilecek şekilde tasarlanmış düz metin biçimlendirme sözdizimine sahip bir alandır. Markdown genellikle düz metin düzenleyicisi kullanarak zengin metin oluşturmak için kullanılır. Sözdizimini öğrenmek için aşağıdaki bağlantıya göz atın
Philipp Schwarz

@PhilippSchwarz yukarıdaki örnekte 'yapıştırılan' görüntünün boyutunu kontrol etmek için bazı seçenekler var mı? <img...>Etiketi kullanarak , bu seçenekler yaklaşık olarak böyle görünür <img ... width="480">.
Reb.Cabin

1
Bunu kullanarak işe yaramadı. Dizüstü bilgisayar belirli bir konuma bakıyordu / dizüstü bilgisayarlar / <buraya ekli çalışma yolum> - elbette bu kök değil - ve yerel yol yoktu. Görüntüyü ek olarak ekleyen (şimdi taşınabilir olan) dizüstü bilgisayar ekleme görüntüsünü kullanmayı yararlı buldum .
Mark

2
Bu yöntemi adlarında boşluk bulunan görüntü dosyalarıyla kullanmanın bir yolu var mı?
zebralamy

78

İpython 2.0 kullanıyorum, bu yüzden sadece iki satır.

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

25
Bu, görüntüyü kod hücresinde görüntülemenin doğru yoludur . minrk cevabı bir bir görüntünün görüntülenmesini doğru yoldur markdown hücresi.
Mike

3
Jupyter notebook 4.2.0 kullanarak, ben de çağırmadıkça görüntüyü göstermiyor display: from IPython.display import Image, display; display(Image(filename='output1.png'))
Matteo T.

22

[Eski]

IPython / Jupyter artık kopyalayıp yapıştırarak veya sürükleyip bırakarak görüntü ekleyebilen bir genişletme modülünü destekliyor.

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

Sürükle ve bırak uzantısı çoğu tarayıcıda çalışıyor gibi görünüyor

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

Ancak kopyala yapıştır yalnızca Chrome'da çalışır.


1
Bu cevabın bazı oylara ihtiyacı var. Ipython uzantıları hakkında çok az şey biliyor.
Thoran

Safari ve Chrome'da drag'n'drop'u denedim, benim için çalışmıyor (OSX, Py3, tüm güncellemeler)
K.-Michael Aye

2
Gönderdiğiniz ikinci bağlantı koptu - uzantı artık desteklenmiyor mu?
zthomas.nc

Ayrıca uzantıyı artık bulamıyorum.
yerforkferchips

Evet, Jupyter son üç yılda biraz ilerledi ve bu cevap oldukça eski.
Mike

18

Jupyter NB'ye bir görüntü almak, çoğu insanın burada bahsettiğinden çok daha basit bir işlemdir.

1) Boş bir Markdown hücresi oluşturun. 2) Ardından görüntü dosyasını boş Markdown hücresine sürükleyip bırakın.

Ardından görüntüyü ekleyecek Markdown kodu görünür.

Örneğin, Jupyter hücresinde aşağıda gri ile vurgulanmış olarak gösterilen bir dize görünecektir:

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

3) Daha sonra Shift-Enter tuşuna basarak Markdown hücresini yürütün. Ardından Jupyter sunucusu görüntüyü ekler ve görüntü görünür.

Jupyter dizüstü sunucusu: Windows 7'de 5.7.4 Python 3.7.0 ile çalıştırıyorum.

Bu çok basit !!


2
Bu gerçekten bulduğum en iyi çözüm !!
GCGM

Maalesef Jupyter Notebook sürüm 6.0 Google Cloud'da barındırıldığında bu yöntem çalışmaz. Herkesin Yönetici ayrıcalıkları olmadan çalışan bir geçici çözümü var, sürükle ve bırak nbextension'ı yüklemenin yanı sıra?
Rich Lysakowski Doktora

13

IPython not defterini görüntüyle aynı klasöre koydum. Windows kullanıyorum. Resim adı "phuong huong xac dinh.PNG".

Markdown'da:

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

Kod:

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

1
dokümantasyon referansı ipython.readthedocs.io/tr/stable/api/generated/… , markdown kullanılmasına rağmen ( api'den![alt text](foo.png "the title") ek argümanlar kullanılması gerekmedikçe imho tercih edilir.
michael

9

Öncelikle ipython dizüstü bilgisayar hücresinde markdown düzenleme modelinde olduğunuzdan emin olun

Bu, başkaları tarafından önerilen yönteme alternatif bir yoldur <img src="myimage.png">:

![title](img/picture.png)

Başlık eksikse de işe yarıyor gibi görünüyor:

![](img/picture.png)

Yolda hiçbir alıntı olmamalıdır. Bunun beyaz boşluklu yollar için çalışıp çalışmadığından emin değilim!


1
Benim için, adında beyaz boşluklara sahip görüntüler dizüstü bilgisayarda oluşturulmuyordu. Boşlukları kaldırdım, şimdi görebiliyorum.
insanely_sin

9

Jupyter notebook'un son sürümü, resmin kopyalanmasını / yapıştırılmasını yerel olarak kabul eder


Görüntüyü dizüstü bilgisayar ikili dosyasına gömdüğü için bu seçeneği tercih ederim. Dizüstü bilgisayarı ağırlaştırır, ancak görüntüyü göreli yolda tutmanıza gerek yoktur.
Tulio Casagrande

8

Görüntüyü bir Markdown hücresinde görüntülemek istiyorsanız şunu kullanın:

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

Görüntüyü bir Kod hücresinde görüntülemek istiyorsanız şunu kullanın:

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

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

HTML komutlarında virgüllerin gerekli olmadığı doğrudur. güncellememi görün
seralouk

5

Bu kodu çalıştırmadan önce varsayılan bloğu "Kod" yerine "Markdown" olarak değiştirin:

![<caption>](image_filename.png)

Görüntü dosyası başka bir klasördeyse aşağıdakileri yapabilirsiniz:

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

4

Yerel dosya sisteminden gösterilebilmesi için görüntü dosyasını Jupyter makinesine nereye yerleştirmek isteyenler için.

Benim koymak mypic.pngINTO

/root/Images/mypic.png

(bu, Jupyter çevrimiçi dosya tarayıcısında görünen Görüntüler klasörüdür)

Bu durumda resmimi not defterinde göstermek için Markdown hücresine aşağıdaki satırı koymam gerekiyor:

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

2

minrk'in cevabı doğrudur.

Ancak, görüntülerin Print View'da bozuk göründüğünü fark ettim (bir Chrome tarayıcıda IPython sürüm 0.13.2'nin Anaconda dağıtımını çalıştıran Windows makinemde)

Bunun için geçici çözüm kullanmaktı <img src="../files/image.png">.

Bu, görüntünün hem Print View'da hem de normal iPython düzenleme görünümünde doğru görünmesini sağladı.

GÜNCELLEME: iPython v1.1.0 sürümüne yükseltmemden bu yana, yazdırma görünümü artık mevcut olmadığından bu geçici çözüm gerekli değildir. Aslında, nbconvert aracının dosyaları bulmasını engellediği için bu geçici çözümden kaçınmalısınız.


-3

Geçerli çalışma dizininizi jupyter not defterinde 'pwd' komutuyla tırnak işaretleri olmadan bulabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.