261

Biopythonのモジュールで作成しているいくつかのゲノムチャートをインタラクティブに分析する方法として、 IPythonノートブックを使用したいと思います。GenomeDiagramIPython Notebookでグラフをインライン化するための使用方法に関する広範なドキュメントがありますがmatplotlib、GenomeDiagramは、IPythonでのインライングラフ化でサポートされているとは思わないReportLabツールキットを使用しています。

しかし、これを回避する方法は、プロット/ゲノム図をファイルに書き出してから、画像をインラインで開くことで、次のような結果になると考えていました。

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

しかし、私はこれを行う方法を理解することはできません-またはそれが可能かどうかを知ることはできません。では、IPythonで画像を開いたり表示したりできるかどうか誰かが知っていますか?

4

14 に答える 14

440

この投稿のおかげで、次のことができます。

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

(公式ドキュメント)

于 2012-08-07T22:37:17.960 に答える
270

ループ内でこの方法で Image を表示しようとしている場合は、表示メソッドで Image コンストラクターをラップする必要があります。

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))
于 2016-01-28T12:20:52.350 に答える
44

これまで投稿されたソリューションは、png と jpg でのみ機能することに注意してください。

さらにライブラリをインポートせずにさらに簡単にしたい場合、またはアニメーション化された、またはアニメーション化されていない GIF ファイルを Ipython Notebook に表示したい場合。表示したい行をマークダウンに変換し、この素敵な短いハックを使用してください!

![alt text](test.gif "Title")
于 2016-02-10T10:55:18.183 に答える
12

このページのおかげで、上記の提案がうまくいかなかったときにこれがうまくいくことがわかりました。

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()))
于 2016-05-05T22:06:32.083 に答える
2

画像の配列からインラインでプロットする別のオプションは次のとおりです。

import IPython
def showimg(a):
    IPython.display.display(PIL.Image.fromarray(a))

ここで、a は配列です

a.shape
(720, 1280, 3)
于 2020-08-01T14:03:34.830 に答える