使用pylab同时显示两个png图像

bal*_*bar 14 python png matplotlib grayscale

我想打开两个png图像文件并将它们并排显示以进行视觉比较.我有这个代码用于打开一个png文件(我从stackoverflow.com上的unutbu获得):

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()
Run Code Online (Sandbox Code Playgroud)

有没有办法修改此代码以打开并显示2个png文件与他们自己的标题并排?

mac*_*mac 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()
Run Code Online (Sandbox Code Playgroud)

编辑:截图:

在此输入图像描述

  • 对于最新的`matplotlib`,你最好从1开始使用索引.参见[官方文档](http://matplotlib.org/api/api_changes.html#changes-in-1-4-x) (3认同)