Как я могу отобразить изображение из файла в Jupyter Notebook?



Я хотел бы использовать IPython notebook как способ интерактивного анализа графиков генома я делаю с GenomeDiagram модуль. Хотя есть обширная документация о том, как использовать matplotlib чтобы получить графики, встроенные в IPython notebook, GenomeDiagram использует инструментарий ReportLab, который, я думаю, не поддерживается для встроенного графического отображения в IPython.



Я думал, однако, что способ обойти это было бы написать сюжет / геном диаграмма в файл, а затем откройте встроенное изображение, которое будет иметь тот же результат с чем-то вроде этого:



gd_diagram.write("test.png", "PNG")
display(file="test.png")


однако, я не могу понять, как это сделать - или знать, если это возможно. Так кто-нибудь знает, если изображения могут быть открыты/отображены в IPython?

1525   7  

7 ответов:

вежливость этот пост, вы можете сделать следующее:

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

(официальные документы)

Если вы пытаетесь отобразить изображение таким образом внутри цикла, то вам нужно обернуть конструктор изображения в метод отображения.

from IPython.display import Image, display

listOfImageNames = ['/path/to/images/1.png',
                    '/path/to/images/2.png']

for imageName in listOfImageNames:
    display(Image(filename=imageName))

обратите внимание, до сих пор опубликованные решения работают только для png и jpg!

Если вы хотите, чтобы это было еще проще без импорта дополнительных библиотек или вы хотите отобразить анимированный или не анимированный GIF-файл в вашем ноутбуке Ipython. Преобразуйте строку, где вы хотите отобразить ее, чтобы уценить и использовать этот хороший короткий Хак!

![alt text](test.gif "Title")

вежливость этой страница, я обнаружил, что это работает, когда предложения выше не сделали:

import PIL.Image
from cStringIO import StringIO
import IPython.display
import numpy as np
def showarray(a, fmt='png'):
    a = np.uint8(a)
    f = StringIO()
    PIL.Image.fromarray(a).save(f, fmt)
    IPython.display.display(IPython.display.Image(data=f.getvalue()))

вы также можете использовать PIL для отображения файлов изображений в Jupyter Notebook:

from PIL import Image
path = "cats/cat0.jpg"
display(Image.open(path))

это работает в цикле.

это будет импортировать и отображать .jpg изображение в Jupyter (протестировано с Python 2.7 в среде Anaconda)

from IPython.display import display
from PIL import Image


path="/path/to/image.jpg"
display(Image.open(path))

возможно, Вам потребуется установить PIL

в Anaconda это делается путем ввода

conda install pillow

при использовании GenomeDiagram С помощью Jupyter (iPython) самый простой способ отображения изображений-это преобразование Геномедиаграммы в изображение PNG. Это может быть обернуто с помощью IPython.дисплей.Изображение объекта, чтобы сделать его отображение в ноутбуке.

from Bio.Graphics import GenomeDiagram
from Bio.SeqFeature import SeqFeature, FeatureLocation
from IPython.display import display, Image
gd_diagram = GenomeDiagram.Diagram("Test diagram")
gd_track_for_features = gd_diagram.new_track(1, name="Annotated Features")
gd_feature_set = gd_track_for_features.new_set()
gd_feature_set.add_feature(SeqFeature(FeatureLocation(25, 75), strand=+1))
gd_diagram.draw(format="linear", orientation="landscape", pagesize='A4',
                fragments=1, start=0, end=100)
Image(gd_diagram.write_to_string("PNG"))

[См. Тетрадь]

Comments

    Ничего не найдено.