Matplotlib 如何在一个图形中显示多个相邻的图像?

Matplotlib 如何在一个图形中显示多个相邻的图像?,matplotlib,julia,Matplotlib,Julia,我正在使用Julia、PyPlot和图像来处理一些图片。因为显示几十个图是不可能的,我想像你在下面看到的那样堆叠图像 我已经规范化了数组{Array{Float64,2},1}中的图像数据 下面的代码仅显示最后一个最小的图像。数组从最大的图片到最小的图片进行排序 for i = 1:size(P, 1) imshow(P[i], "gray", interpolation = "none") end 我想达到以下效果: 我要做的是创建一个数组,将所有其他图像的数组连接起来,并用零(或任

我正在使用Julia、PyPlot和图像来处理一些图片。因为显示几十个图是不可能的,我想像你在下面看到的那样堆叠图像

我已经规范化了
数组{Array{Float64,2},1}
中的图像数据


下面的代码仅显示最后一个最小的图像。数组从最大的图片到最小的图片进行排序

for i = 1:size(P, 1)
  imshow(P[i], "gray", interpolation = "none")
end

我想达到以下效果:


我要做的是创建一个数组,将所有其他图像的数组连接起来,并用零(或任何其他数字)填充空白处

  • 创建一个新的数组,其中所有内部数组的高度相同,方法是在底部填充零
  • fullimage=cat(1,阵列射线…)
  • imshow(fullimage)

  • (很抱歉,我正在打电话,因此无法为您提供一个工作示例!)

    以下是一个带有绘图的解决方案:

    using Plots, TestImages
    img = testimage("cameraman")
    p = plot(
        axis = nothing,
        layout = @layout([a [b [c [d;_]; _]; _]]),
        size = (800,400)
    )
    
    for i=1:4
        plot!(p[i], img, ratio=1)
    end
    p
    
    这里有两种方法

    一,。快速但不灵活的
    子批次
    一个:

    # create test image
    using PyPlot, TestImages
    img = testimage("cameraman");
    img = [convert(Float64, i.val) for i in img[:,:]]';
    

    二,。手动指定轴定位:

    # using same image as above
    figure();
    axes(position=[0,0,0.5,1]); imshow(img); axis("off");
    axes(position=[0.5,0.5,0.25,0.5]); imshow(img); axis("off");
    axes(position=[0.75,0.75,0.125,0.25]); imshow(img); axis("off");
    axes(position=[0.875,0.875,0.0625,0.125]); imshow(img); axis("off"); # ... etc
    

    PS:使用
    savefig(filename,facecolor=“black”)
    保存图形,以将图形背景设置为黑色,如您的示例中所示。难以置信的是,绘图使一切变得如此简单。汤姆,谢谢你的出色工作!
    # using same image as above
    figure();
    axes(position=[0,0,0.5,1]); imshow(img); axis("off");
    axes(position=[0.5,0.5,0.25,0.5]); imshow(img); axis("off");
    axes(position=[0.75,0.75,0.125,0.25]); imshow(img); axis("off");
    axes(position=[0.875,0.875,0.0625,0.125]); imshow(img); axis("off"); # ... etc