Julia:如何使用PyPlot创建不同大小的子图?

时间:2016-11-17 20:03:56

标签: matplotlib plot julia subplot

我想创建一个包含多个图的图形。但是我希望能够让每个地块都有不同的尺寸。例如,我希望第一个子图大约是第二个子图的两倍宽。我希望能做到这样的事情:

using PyPlot

a = rand(500,900)
b = rand(500,400)  # notice how 'a' is 900 in width and 'b' is 400, i.e. 'a' is approximately twice as wide as 'b'

figure(1)
subplot(2,5,1:2) ; imshow(a)
subplot(2,5,3) ; imshow(b)
# and so on...

但这似乎不起作用。有没有人知道允许我调整每个子图的大小的方法?

2 个答案:

答案 0 :(得分:3)

与matlab类似,可以在同一个图窗口中包含不同大小的子图,只要它们不重叠并且它们是根据有效网格中的有效元素定义的。 e.g:

julia> subplot(2,2,1); imshow(a);
julia> subplot(2,4,3); imshow(b); # note the different grid size

但是,如果您想要更精确的控制,那么完全放弃subplot命令,并手动将轴直接绘制到您想要的位置:

julia> axes([0.05, 0.55, 0.5,  0.4]); imshow(a);
julia> axes([0.6,  0.55, 0.35, 0.4]); imshow(b);

答案 1 :(得分:1)

使用Plots.jl这样的事情要容易得多。参见例如the documentation中的第一个示例中的@layout命令。