2012-04-29 8 views
14

2つのpng画像ファイルを開いて、視覚的に比較できるように並べて表示します。 私は(私はstackoverflow.comにunutbuから得た)1つのPNGファイル開くため、このコードがあります。pylabを使用して2つのpng画像を同時に表示する

import numpy as np 
import pylab 
import matplotlib.cm as cm 
import Image 

fname='file.png' 
image=Image.open(fname).convert("L") 
arr=np.asarray(image) 
pylab.imshow(arr,cmap=cm.Greys_r) 
pylab.title('title') 
pylab.show() 

することは、自分のし方によって2つのPNGファイル側を開いて表示するには、このコードを変更する方法はありますタイトル?

答えて

22

次作品(あなたは "複合" 画像のレイアウトを変更するコードの行のコメントを解除/コメントすることができます):

#!/usr/bin/env python 
#-*- coding:utf-8 -*- 

import numpy as np 
import pylab 
import matplotlib.cm as cm 
import Image 

f = pylab.figure() 
for n, fname in enumerate(('1.png', '2.png')): 
    image=Image.open(fname).convert("L") 
    arr=np.asarray(image) 
    f.add_subplot(2, 1, n) # this line outputs images on top of each other 
    # f.add_subplot(1, 2, n) # this line outputs images side-by-side 
    pylab.imshow(arr,cmap=cm.Greys_r) 
pylab.title('Double image') 
pylab.show() 

EDIT:スクリーンショット:

enter image description here私は今使用し、いくつかのコードに上記の回答を組み合わせる

+0

これは素晴らしいです!ありがとう! – balibakbar

+0

2つ以上のイメージを追加すると、これが原因で "インデックスが範囲外です"というエラーが発生しませんか? – Seanny123

+3

最新の 'matplotlib'については、1から始まるインデックスを使うのがよいでしょう。[the offical doc](http://matplotlib.org/api/api_changes.html#changes-in-1-4-x) – wlnirvana

0

次の図は、1つの図に2つの部分グラフを含む例です。

import pylab 

coordinates = range(5) 
x = [1,4,5,6,2] 
y = [4,6,8,9,2] 

fig = pylab.figure() 

fig_1 = fig.add_subplot(2,1,1) 

fig_1.bar(coordinates,x) 

fig_2 = fig.add_subplot(2,1,2) 

fig_2.bar(coordinates,y) 

pylab.show() 

私はあなたがすでに持っているものと組み合わせる必要があると思います。私にとって

0

`

import pylab as P 
import numpy as N 
import Image 

fnames = ['1.png', '2.png', '3.png'] 

fig = P.figure() 
for i,fname in enumerate(fnames): 
    fig.add_subplot(number_images, 1, i+1) 
    P.imshow(N.asarray(Image.open(fname).convert("L"))) 
P.show() 

`

関連する問題