tablas notebook insertar imagen change python ipython jupyter-notebook biopython

python - insertar - ¿Cómo puedo mostrar una imagen de un archivo en Jupyter Notebook?



tablas en jupyter notebook (7)

Al utilizar GenomeDiagram con Jupyter (iPython), la manera más fácil de mostrar imágenes es convertir el GenomeDiagram en una imagen PNG. Esto se puede envolver utilizando un objeto de imagen IPython.display.p. para que se muestre en el cuaderno.

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"))

[Ver Notebook]

Me gustaría utilizar un cuaderno de IPython como una forma de analizar interactivamente algunas tablas de genoma que estoy haciendo con el módulo GenomeDiagram de Biopython. Si bien hay una amplia documentación sobre cómo utilizar matplotlib para obtener gráficos en línea en el cuaderno IPython, GenomeDiagram usa el kit de herramientas ReportLab, que no creo que sea compatible con gráficos en línea en IPython.

Estaba pensando, sin embargo, que una forma de evitar esto sería escribir el diagrama de trazado / genoma en un archivo y luego abrir la imagen en línea, que tendría el mismo resultado con algo como esto:

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

Sin embargo, no puedo entender cómo hacer esto, o saber si es posible. Entonces, ¿alguien sabe si las imágenes se pueden abrir / mostrar en IPython?



Cortesía de this página, encontré que funcionó cuando las sugerencias anteriores no:

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()))


Esto importará y mostrará una imagen .jpg en Jupyter (probado con Python 2.7 en entorno Anaconda)

from IPython.display import display from PIL import Image path="/path/to/image.jpg" display(Image.open(path))

Es posible que necesite instalar PIL

en Anaconda esto se hace tipeando

conda install pillow


Si está tratando de mostrar una Imagen de esta manera dentro de un bucle, entonces debe envolver el Constructor de Imagen en un método de visualización.

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))


También puede usar PIL para visualizar archivos de imagen en Jupyter Notebook:

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

Esto también funciona en un bucle.


Tenga en cuenta que hasta ahora las soluciones publicadas solo funcionan para png y jpg.

Si lo desea aún más fácil sin importar más bibliotecas o si desea mostrar un archivo GIF animado o no animado en su Ipython Notebook. Transforma la línea en la que deseas mostrarla a la marca y utiliza este truco corto.

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