我可以在三角形中排列3个大小相同的子图吗?

时间:2013-12-02 09:31:04

标签: python matlab matplotlib

为了清楚说明,我将使用4x4网格来显示我想要的子图的位置和大小。计数如下:

1  2  3  4
5  6  7  8
9  10 11 12
13 14 15 16

我希望将顶部图放置在2,3,6和7上。两个底部图分别是9,10,13,14和11,12,15,16。在Matlab中,您可以使用子图范围,但我相信这仅适用于单行配置。

我怎样才能在matplotlib中这样做?我需要一个gridspec吗?那我怎么用呢?这些例子不足以理解我应该如何解决这个问题。

1 个答案:

答案 0 :(得分:14)

使用subplot范围:

img = imread('cameraman.tif');
figure;
subplot(4,4,[2 3 6 7]);imshow(img);
subplot(4,4,[9 10 13 14]);imshow(img);
subplot(4,4,[11 12 15 16]);imshow(img);

结果是:


基于subplot2grid

matplotlib解决方案
import matplotlib.pyplot as plt
plt.subplot2grid( (4,4), [0,1], 2, 2 )
plt.plot( x1, y1 )
plt.subplot2grid( (4,4), [2,0], 2, 2 )
plt.plot( x2, y2 )
plt.subplot2grid( (4,4), [2,2], 2, 2 )
plt.plot( x2, y2 )

给出以下结果:

enter image description here