从IPython Notebook中的文件显示图像

我想用一个IPython笔记本来交互式地分析我用Biopython的GenomeDiagram模块制作的基因组图表。 尽pipe有大量关于如何使用matplotlib在IPython笔记本中内联graphics的文档,但是GenomeDiagram使用了ReportLab工具箱,我认为它并不支持IPython中的内嵌graphics。

不过,我在想,解决这个问题的方法是将绘图/基因组图表写出到一个文件中,然后打开内嵌的图像,这样就可以得到如下结果:

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

但是,我不知道如何做到这一点,或知道是否有可能。 那么有谁知道图像是否可以在IPython中打开/显示?

由这篇文章 ,您可以执行以下操作:

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

( 官方文档 )

如果您试图在循环内以这种方式显示图像,则需要将Image构造函数包装在显示方法中。

 from IPython.display import Image, display listOfImageNames = ['/path/tohttp://img.dovov.com1.png', '/path/tohttp://img.dovov.com2.png'] for imageName in listOfImageNames: display(Image(filename=imageName)) 

请注意,到目前为止,发布的解决scheme仅适用于png和jpg!

如果您希望在不导入更多库的情况下更轻松,或者希望在Ipython Notebook中显示animation或非animationGIF文件。 将你想要显示的行变换为降价,并使用这个很好的短小黑客!

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

由于这个页面,我发现这个工作时,上面的build议没有:

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

当使用GenomeDiagram (iPython)的GenomeDiagram时,显示图像最简单的方法是将GenomeDiagram转换为PNG图像。 这可以使用IPython.display.Image对象进行包装,以使其显示在笔记本中。

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

[见笔记本]

Interesting Posts