How can I display an image from a file in Jupyter Notebook?
我想使用IPython笔记本作为交互式分析我使用Biopython的
然而,我想,解决这个问题的方法是将绘图/基因组图表写入文件,然后打开内联图像,这将具有相同的结果,如下所示:
1 2 | gd_diagram.write("test.png","PNG") display(file="test.png") |
但是,我无法弄清楚如何做到这一点 - 或者知道它是否可行。 那么有人知道图像是否可以在IPython中打开/显示?
感谢这篇文章,您可以执行以下操作:
1 2 | from IPython.display import Image Image(filename='test.png') |
(官方文件)
如果您尝试在循环内以这种方式显示图像,则需要将Image构造函数包装在显示方法中。
1 2 3 4 5 6 7 | 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!
如果您希望在不导入更多库的情况下更容易,或者想要在Ipython Notebook中显示动画或非动画GIF文件。将要显示它的行转换为markdown并使用这个漂亮的短黑客!
1 | ![alt text](test.gif"Title") |
这将在Jupyter中导入并显示
1 2 3 4 5 6 | from IPython.display import display from PIL import Image path="/path/to/image.jpg" display(Image.open(path)) |
您可能需要安装PIL
在Anaconda这是通过打字完成的
1 | conda install pillow |
由于上述建议没有,我觉得这个有用了。
1 2 3 4 5 6 7 8 9 | 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中显示图像文件:
1 2 3 | from PIL import Image path ="cats/cat0.jpg" display(Image.open(path)) |
这也适用于循环。
一个更干净的Python3版本,使用标准的numpy,matplotlib和PIL。合并从URL打开的答案。
1 2 3 4 5 6 7 8 9 10 11 12 | import matplotlib.pyplot as plt from PIL import Image import numpy as np pil_im = Image.open('image.png') #Take jpg + png ## Uncomment to open from URL #import requests #r = requests.get('https://www.vegvesen.no/public/webkamera/kamera?id=131206') #pil_im = Image.open(BytesIO(r.content)) im_array = np.asarray(pil_im) plt.imshow(im_array) plt.show() |
在Jupyter(iPython)中使用
1 2 3 4 5 6 7 8 9 10 | 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")) |
[见笔记本]