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"))
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 esta publicación , puedes hacer lo siguiente:
from IPython.display import Image
Image(filename=''test.png'')
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")