pylabでMatlabライクな(複数)画像表示

インタラクティブシェル上でpylabで画像を表示しようとしたけれど、上手く表示されなかったので調べた際のメモ。

imshow結果。

imshow()interpolation='nearest'を指定すると、なめらかな補完なしに表示できる。以下にIPythonでの入力した例を示します。なおIPythonの起動時に、$ ipython --matplotlib と指定してmatplotlibインテグレートモードで起動しておきます。結果は上の画像のような表示になります。

1
2
3
4
5
6
7
from pylab import *

data = randint(0, 255, (15, 5))
subplot(121)
imshow(data)
subplot(122)
imshow(data, interpolation='nearest')

matplotlibのimshowメソッドに関しては公式APIリファレンスも参照のこと。

また、複数画像の表示にはsubplot()を指定する。subplot(rcn)とした場合、r=(行数)c=(列数)n=(プロット番号)の順で指定することになる。上記の例では、1つ目の図がsubplot(121)で2つ目がsubplot(122)なので、1行2列、すなわち横に並べて表示するように指定しており、3番目の番号で何番目に表示するかを指定している。

参考